1 EDIFACT - WebHome < Tesi < Fabio's...

109
Università degli Studi di Bologna FACOLTÀ DI SCIENZE MATEMATICHE, FISICHE E NATURALI Corso di Laurea in Informatica Materia: Interazione persona-computer STANDARD PER IL B2B A CONFRONTO: UNA RASSEGNA Relatore: Chiar.mo Prof. FABIO VITALI Tesi di Laurea di: LUCA MASELLI Parole chiave: B2B, XML, ebXML, UBL, BizTalk

Transcript of 1 EDIFACT - WebHome < Tesi < Fabio's...

Università degli Studi di Bologna

FACOLTÀ DI SCIENZE MATEMATICHE, FISICHE E

NATURALI

Corso di Laurea in Informatica

Materia: Interazione persona-computer

STANDARD PER IL B2B A CONFRONTO:

UNA RASSEGNA

Relatore:

Chiar.mo Prof. FABIO VITALI

Tesi di Laurea di:

LUCA MASELLI

Parole chiave: B2B, XML, ebXML, UBL, BizTalk

SESSIONE III

Anno Accademico 2003/2004

INDICE

Introduzione...................................................................................................7

1 Origini del B2B.........................................................................................11

1.1 Il commercio e l’uomo.......................................................................11

1.2 La comunicazione nel commercio.....................................................12

1.3 Definizione di B2B............................................................................13

1.4 UN/EDIFACT....................................................................................14

1.5 Struttura di un messaggio EDIFACT.................................................16

2 SOAP e protocolli webservice..................................................................21

2.1 I webservice.......................................................................................21

2.1.1 Definizione di webservice...........................................................21

2.1.2 Nascita dei Webservice...............................................................23

2.2 SOAP.................................................................................................25

2.2.1 Prime implementazioni: XML-RPC...........................................25

2.2.2 Definizione di SOAP..................................................................26

2.2.3 L’architettura di SOAP...............................................................27

2.2.4 Elementi di un messaggio SOAP................................................28

3 BIZTALK.................................................................................................31

3.1 La nascita di BizTalk.........................................................................31

3.2 Il consorzio per Biztalk......................................................................32

3.3 Miscrosoft BizTalk Server.................................................................33

3.4 Il framework di BizTalk.....................................................................34

3.5 Requisiti del sistema..........................................................................35

3.5.1 Requisiti di sistema per un server...............................................35

3.5.2 Requisiti di sistema per un client................................................36

3.6 Panoramica su BizTalk Server...........................................................36

3.6.1 Regole e politica della ditta.........................................................37

3.6.2 Ambiente di sviluppo unificato...................................................37

3.6.3 Progettazione di processi aziendali complessi............................39

3.6.4 Sistema di tracciamento realtime per amministrazione e debug.39

3.6.5 Gestione dei partner commerciali di larga scala.........................40

3.6.6 Integrazione in Microsoft Office e Microsoft InfoPath..............41

3.6.7 Semplificazione dell’interazione tra sviluppatori ed analisti......42

3.6.8 Monitoraggio dell’attività commerciale.....................................43

3.7 Acceleratori per BizTalk Server........................................................44

3.8 Adattatori...........................................................................................45

4 ebXML......................................................................................................51

4.1 Definizione di ebXML.......................................................................51

4.2 Perché ebXML?.................................................................................51

4.3 Un sistema ad hoc..............................................................................52

4.4 Panoramica su ebXML......................................................................53

4.5 Struttura di ebXML............................................................................54

4.6 Il cuore di ebXML: la Registry..........................................................56

4.6.1 Modello informativo di una registry ebXML.............................56

4.6.2 Interfacce della Registry ebXML................................................57

4.7 Fasi di funzionamento di ebXML......................................................58

4.7.1 Fase implementativa...................................................................58

4.7.2 Fase di scoperta – recupero.........................................................59

4.7.3 Fase di esecuzione......................................................................60

4.8 Formato dei messaggi ebXML..........................................................61

4.8.1 Header MIME delle parti del messaggio....................................62

4.8.2 Reliable Messaging.....................................................................63

5 UBL..........................................................................................................65

5.1 Definizione di UBL...........................................................................65

5.2 Breve storia di UBL...........................................................................66

5.3 Perché UBL?......................................................................................66

5.4 Struttura di UBL................................................................................68

5.4.1 Esempio di Schema XSD............................................................69

5.5 Il ciclo ordine-fattura.........................................................................72

6 Confronto tra gli standard.........................................................................75

6.1 Il dualismo tra i colossi e gli altri.......................................................75

6.2 Confronto fra livelli...........................................................................76

6.3 Qual è lo standard adatto?..................................................................78

7 Conclusioni...............................................................................................79

RIFERIMENTI............................................................................................81

Fonti in rete..............................................................................................81

Altre risorse in rete...................................................................................83

Fonti Bibliografiche.................................................................................84

5

INTRODUZIONE

Questa tesi tratta alcuni dei più noti standard per il B2B, ovvero quella

categoria di linguaggi, programmi, schemi e convenzioni utilizzati nei

rapporti commerciali tra aziende ed altre aziende piuttosto che tra aziende e

privati.

Il commercio è sempre stato un elemento di fondamentale importanza sia

per la crescita che per il progresso della società.

La comunicazione ne è stato un aspetto fondamentale poiché ha permesso

di espandere le proprie possibilità commerciali al di fuori della comunità di

origine.

Una volta superati i problemi linguistici e logistici, si è pensato di poter

migliorare l’aspetto del trasferimento dei dati. Già negli anni 70 si pensò di

realizzare una serie di protocolli (inteso come insieme di documenti e

procedure) standard che permettessero l’alleggerimento (dal punto di vista

burocratico e cartaceo) dei processi commerciali.

EDIFACT fu la prima risposta a questa domanda, giunta molto prima della

nascita di XML.

I primi sviluppi di EDIFACT furono una serie di norme per la

regolamentazione del commercio internazionale, ma visti gli strumenti a

disposizione in quegli anni, il risultato non fu così apprezzato.

Quello che ne seguì non fu così rilevante come invece la creazione di XML

e dei linguaggi di markup derivati. Grazie ad esso era possibile definire un

numero illimitato di schema per soddisfare ogni esigenza di formato per la

descrizione dei dati.

Nel frattempo Internet si era espansa in modo capillare, accogliendo anche

le piccole realtà nel commercio elettronico. La richiesta di fornire e ottenere

servizi via rete è andata via via crescendo e l’interesse in questa direzione

ha raggiunto livelli non immaginabili.

SOAP, un protocollo basato su XML che fornisce un sistema di

messaggistica per la comunicazione tra partner commerciali, è diventato lo

standard nel suo campo. Il suo meritato successo è dovuto anche

all’utilizzo di HTTP come protocollo di comunicazione, ancora oggi il più

diffuso nell’ambito della rete globale.

Successivamente, affidandosi a SOAP per il formato della messaggistica, si

sono costruiti altri livelli per l’implementazione del modello di commercio

via rete.

ebXML è un particolare insieme di schema XML che basandosi su un

vocabolario di termini comuni, immagazzinati in un registro condiviso,

permette la standardizzazione delle comunicazioni commerciali. In aggiunta

ai molti vantaggi, ebXML ha però dimostrato di avere una lacuna riguardo

la gestione degli specifici payload nei messaggi XML.

Per questo motivo è stato ripreso, dopo averne inizialmente accantonato il

progetto, UBL, che fornisce una serie di librerie per soddisfare una quantità

ancor maggiore –rispetto a ebXML e XML in genere– di specifiche

riguardanti settori ancor più dettagliati dell’e-commerce. Uno dei suoi punti

di forza risiedeva nel fatto che non sarebbe stato coperto da copyright.

La risposta che Microsoft ha dato a questo crescente interesse verso

l’unificazione degli strumenti per il B2B, è BizTalk. Il sistema risulta

sicuramente più omogeneo degli altri proposti dai vari comitati capeggiati

da OASIS, e sfrutta a pieno il fatto di operare all’interno di un sistema

operativo proprietario e pertanto ben noto e totalmente controllabile.

Sulla scia di Microsoft anche altri grossi aziende dell’IT hanno prodotto

pacchetti completi per la gestione del B2B, come IBM, HP, SUN, ecc…

Dopo la panoramica degli standard proposti, viene tentato un confronto tra

di essi, cercando di comprenderne la collocazione nel modello ipotetico di

un sistema per il B2B. Il risultato è che soprattutto per i sistemi definiti

completi (es. BizTalk), non si può trovare un parallelismo esatto. L’alto

stadio di integrazione fa sì che certi livelli teorizzati divisi vengano

implementati in modo monolitico. Per quel che riguarda la scelta di uno o

8

dell’altro sistema per il B2B rimane fondamentale l’opzione di mantenere

l’eventuale sistema pre-esistente o di cambiarlo (e quindi investire risorse e

denaro). Sebbene la proposta opensource di UBL sia allettante poiché

liberamente utilizzabile e modificabile, risulta ancora insufficiente per

definirlo un sistema ideale che, ad oggi, sembra sia a disposizione delle sole

grandi aziende IT che possono fornire un prodotto completo.

L’unica certezza che abbiamo è che il commercio elettronico (e di

conseguenza il B2B che ne è parte consistente) sia fortemente in

espansione. Se si deciderà di supportare altre iniziative improntate sul libero

utilizzo di software (come UBL), probabilmente si otterrà una crescita

ancora maggiore di quella odierna nell’ambito del software per il B2B. Gli

alti costi dei sistemi completi sembrano essere ancora alla base delle scelte

di cambiamento o di adeguamento di una ditta che si pone davanti al

commercio elettronico. Non è escluso quindi (anzi, è auspicabile) che con

un sempre crescente numero di aziende richiedenti i software freeware si

possa giungere ad un mercato davvero libero alla portata di tutti.

9

1 ORIGINI DEL B2B

1.1 Il commercio e l’uomo

Il commercio è sempre stato uno dei punti cardine per ogni società dalla

nascita dell’uomo moderno ad oggi. Esclusione fatta per le comunità

autosufficienti o geograficamente isolate, è stato il tramite per il progresso e

per l’evoluzione stessa del genere umano. Partendo dal baratto si è giunti

alle borse finanziarie, in cui non solo si commerciano i beni, ma anche le

previsioni di successo di tali beni. Si è partiti dalle strade lastricate dai

Romani per agevolare i carri trainati da animali, e attraverso i grandi

navigatori tornati dall’Oriente si è giunti ai corrieri espressi con a

disposizione grandi aerei transcontinentali.

Ma se da una parte non è possibile –con le tecnologie attuali– accelerare

ulteriormente il trasferimento fisico delle merci, si può operare invece

sull’organizzazione del commercio: i contatti, i documenti, i pagamenti;

tutto quanto, in pratica, abbia a che fare con l’iter burocratico di un affare

commerciale. Sono assai remoti i tempi in cui un mercante partiva con le

navi per le colonie e non si sapeva se e quando sarebbe tornato con il carico

di merce acquistata. Oggi possiamo visionare i prodotti su internet,

acquistarli con l’ausilio di carte di credito, sapere momento per momento lo

stato dell’ordine, la posizione geografica della merce e riceverla a casa

senza muovere un dito. E’ ovvio che le infrastrutture necessarie per questo

tipo di attività sono complesse e non è pensabile che non siano tali; devono

però soddisfare un requisito fondamentale, senza il quale anche con le

tecnologie più evolute non sarebbero in grado di fornire un servizio

efficiente: devono comunicare efficacemente tra loro.

Quello che a noi sembra un’operazione lineare e relativamente semplice

come l’acquisto di un prodotto via internet, è il frutto della perfetta

comunicazione tra una serie di aziende fornitrici di servizi diversi, che

avranno come obiettivo finale quello di farci arrivare il pacco contenente il

prodotto da noi acquistato, al più un paio di giorni dopo il momento in cui

abbiamo riempito un modulo on line su un sito che vende on line.

Vediamo perciò che la definizione di commercio elettronico non può

fermarsi all’informatizzazione delle operazioni prima svolte tramite

supporto cartaceo, ma implica il cambiamento radicale di tutti quei servizi

che stanno dietro ad una transazione commerciale, basati soprattutto sulla

collaborazione efficace di tutti gli attori in gioco.

1.2 La comunicazione nel commercio

Come il commercio, ancor più il tema della comunicazione è stato

fondamentale nella storia del genere umano. Sin dagli albori, quando si

intrapresero le prime attività commerciali, il mercante che conosceva

diversi modi di comunicare aveva sicuramente dei vantaggi, perché poteva

relazionarsi con più persone e poteva espandere la sua attività anche a

regioni lontane, sia geograficamente che culturalmente. Di conseguenza

poteva ottenere merci provenienti anche da terre molto lontane e –pertanto–

di sempre maggior valore. Pensiamo semplicemente ai primi esploratori che

partivano dall’Europa con navi vuote e tornavano con ogni sorta di merce

rara proveniente dai paesi lontani. La possibilità di comunicare nel maggior

numero di modi (linguaggi) possibile, quindi, si è sempre tradotta con un

aumento delle attività commerciali e di scambio. La conoscenza delle

lingue, fino al secolo scorso, ha fatto la differenza nel commercio: se ancora

oggi possiamo parlare francese in Africa e in Oceania, inglese in India e in

Australia, spagnolo in America Latina, è perché nelle colonie si è cercato di

appianare –in modo più o meno ortodosso– il problema della differenza

linguistica.

Al giorno d’oggi, in cui nella stragrande maggioranza delle nazioni vige il

libero commercio, e sia per i lasciti dei paesi colonizzatori, sia per

l’aumentata scolarizzazione (e conseguente studio di lingue straniere),

l’elemento che può fare la differenza non è più la lingua, poiché i metodi di

comunicazione sono divenuti alla portata di tutti, bensì una piattaforma

comune di procedure e protocolli commerciali.

Per esempio, supponiamo che lo Stato A debba acquistare dei beni dallo

Stato B, che a sua volta li debba importare dallo Stato C.

Supponiamo ora che tra lo Stato A e lo Stato B ci siano accordi

commerciali per i quali le merci non debbano essere sottoposte a controlli

doganali al fine di velocizzare le procedure di vendita. Se tra lo Stato B e lo

Stato C invece non ci fossero accordi simili, e le merci dovessero sostare

diversi giorni alla frontiera poiché dettato dall’iter burocratico, è

comprensibile che non solo lo Stato B subirebbe ritardi, ma indirettamente

anche lo Stato A.

E’ facile capire quindi che sta nell’interesse di tutti gli Stati avere

facilitazioni, dal punto di vista burocratico, nella produzione, nella vendita e

nella distribuzione dei propri prodotti. Proprio per questo motivo si è deciso

di agire a livello internazionale, per creare una proposta globale volta ad

eliminare i problemi derivanti dalla lentezza e dalla macchinosità della

burocrazia.

1.3 Definizione di B2B

Con l’acronimo B2B si intende Business To Business ovvero “imprese per

imprese”. A questa categoria vengono fatti appartenere tutti i servizi dell’e-

commerce (dati, procedure, etc.) forniti da aziende per altre aziende. L’altro

lato della medaglia dell’e-commerce è il B2C ovvero il Business To

Consumer (impresa per il consumatore). Nonostante le due tipologie di

affari sembrino differenziarsi solamente nel fruitore finale del servizio, in

realtà il framework e le procedure necessarie allo svolgimento dei passaggi

tra le parti sono assai differenti. È infatti impensabile che si adottino le

13

stesse modalità di gestione per la vendita all’ingrosso e la vendita al

dettaglio; questa è una regola del commercio stesso.

Nella tabella sottostante possiamo verificare le principali differenze tra un

rapporto commerciale di tipo B2B e uno di tipo B2C; prendendo in

considerazione degli elementi alla base di una relazione (comunicazione,

input/output dati, applicativi necessari). Risulta subito chiaro che il primo

necessita di più risorse o di risorse più complesse.

Elementi considerati Applicazione B2B Applicazione B2C

Accordi sul processo di

transazione

Accordo bilaterale tra

le parti

Solitamente deciso dal

fornitore del servizio

Protocolli di

comunicazione

HTTP, SMTP, FTP,

TCP/IP, …HTTP

Input dati XML HTML GET/POST

Output dati XML HTML

Applicativo client Apposito applicativo Browser Internet

Due delle differenze che risultano più facilmente individuabili sono il

protocollo di comunicazione e l’interscambio di dati. In uno scenario B2B

sono permessi una grande varietà di protocolli di comunicazione ma

l’input/output è prevalentemente in formato XML, nel caso del B2C invece

si utilizza prevalentemente HTTP per la trasmissione dei dati e HTML

nell’i/o.

1.4 UN/EDIFACT

Nel marzo del 1990, una commissione delle Nazioni Unite si incontrò per

affrontare il tema della comunicazione nel commercio globale. In quella

sede vennero definite delle regole per lo scambio di dati elettronici

nell’amministrazione, nel commercio e nei trasporti. La commissione

prende e sviluppa una serie di regole che prende il nome di United Nations

14

rules for Electronic Data Interchange For Administration, Commerce and

Transport (UN/EDIFACT).

Leggendo gli atti di quel congresso [UNE00] è chiaro che il primo passo

che si intendeva compiere era quello di semplificare la parte burocratica.

I servizi commerciali, infatti, hanno a che fare profondamente con i requisiti

e le procedure del flusso di informazioni necessari per il movimento

internazionale dei beni. Solitamente questo flusso è sempre stato

convalidato sotto forma di documenti cartacei e procedure manuali che li

gestivano; era quindi comprensibile che il primo approccio dovesse

concentrarsi sulla semplificazione e soprattutto sulla standardizzazione dei

documenti per il commercio internazionale.

Gli sviluppi tecnologici, nel frattempo, avevano fornito una gestione

alternativa ai metodi di trasmissione delle informazioni; inoltre la visione

della cooperazione internazionale era stata estesa dall’armonizzazione dei

documenti ad una ricerca più approfondita sull’identificazione delle

informazioni basilari necessarie e lo sviluppo di metodologie interamente

nuove per soddisfarle.

In realtà già nel 1972 si intravedeva la strada da percorrere, quando si

trasformò la commissione denominata UN Working Party on the

Simplification and Standardization of External Trade Documents (gruppo

operativo per la semplificazione e standardizzazione dei documenti per il

commercio estero, attiva dal 1960) in UN Working Party on Facilitation of

International Trade Procedures (gruppo operativo per la semplificazione

delle procedure di commercio internazionale). Lo scopo di questa

commissione era quello di sviluppare una terminologia standard per il

commercio internazionale e di uniformare il sistema da utilizzare per la

trasmissione automatica dei dati relativi.

15

1.5 Struttura di un messaggio EDIFACT

Vediamo la struttura di un messaggio EDIFACT, come risulta dalla

versione del 1988 e definitivamente modificata nel 1990 (registrata come

ISO9735).

In Europa, sotto la supervisione del Western European EDIFACT Board,

hanno lavorato dieci gruppi di sviluppo differenti per creare standard

diversi a seconda della tipologia del campo d’applicazione:

Commercio

Trasporti

Personalizzazioni

Finanza

Costruzioni

Statistica

Assicurazioni

Turismo

Sanità

Amministrazione sociale

Lo standard propone regole sintattiche per la creazione dei messaggi che si

scambiano i partner commerciali. Analogamente al modello ISO/OSI dei

protocolli e dei servizi, lo standard specifica diversi livelli che si

differenziano solo per i set di caratteri. Alcuni caratteri sono riservati per

essere usati come terminatori, separatori e di rilascio. La struttura appare in

questo modo:

16

Figura 1 – Struttura di un messaggio EDIFACT

I segmenti e gli elementi in un messaggio possono essere opzionali. Nella

struttura sono spesso definiti per essere ripetuti e/o innestati. La struttura

del messaggio può essere descritta usando un determinato messaggio tipo

DIRDEF (Directory Definition) oppure tipo KUVAUS (descrizione del

messaggio). Un traduttore potrebbe interpretarlo leggendo tale descrizione.

Figura 2 – Semplice esempio di struttura di un messaggio

17

Lo schema del messaggio dovrebbe essere letto da sinistra a destra e

dall’alto al basso. Quindi nell’esempio di Figura 2 i segmenti di dati

verrebbero letti in questo ordine:

1) AAA

2) BBB

3) CCC

4) DDD

5) DDD

6) DDD

7) DDD

8) CCC

9) DDD

10) EEE

11) FFF

12) FFF

13) GGG

14) GGG

15) FFF

16) HHH

17) III

Un segmento di dati è definito per contenere determinati elementi. Sono

definiti i requisiti (mandatory, obbligatorio o conditional, facoltativo) e i

formati (alfabetici, alfanumerici o numerici e il massimo numero dei

caratteri ammessi).

Ecco un esempio di segmento di dati:

18

Figura 3 – Esempio di segmento di dati

I dati corrispondenti risultano pertanto come segue:FTX+OSI+++This is just informative text'

FTX+OSI+++Text can be devided:in separate parts:or coded.+ENG'

FTX+ZZZ+A+123:NN:BBB'

19

2 SOAP E PROTOCOLLI WEBSERVICE

2.1 I webservice

2.1.1 Definizione di webservice

Ad oggi non esiste una definizione ufficiale del termine webservice; i

concetti che lo implementano sono chiari ma neppure W3C è sceso nel

dettaglio per darne una definizione precisa.

Microsoft [SKO02] rifiuta la seguente definizione basilare, perché troppo

riduttiva:

Componente di applicazione accessibile tramite un protocollo

aperto

Ecco invece come –sempre secondo Microsoft– verrebbero definiti in modo

più adeguato:

I web service rappresentano una nuova piattaforma sulla

quale gli sviluppatori costruiscono le stesse applicazioni

distribuite come hanno sempre fatto, ma questa volta con

l’interoperabilità come massima priorità.

Tra le molte e diverse definizioni che si possono trovare riguardo al termine

“web service”, ne cito due: la prima presa da un sito commerciale, la

seconda da un sito no-profit.

La prima citazione [DAT04] enfatizza l’importanza dell’indipendenza dalla

piattaforma:

I Web service sono un meccanismo per rendere accessibile la

funzionalità delle applicazioni software e relativi dati

attraverso internet utilizzando un protocollo standard. 

Questo concetto è chiamato servizio in quanto abilita una

periferica qualsiasi che può accedere ad internet di servirsi di

un altro computer come provider di una funzione ben definita

(il servizio) o il dato.  Il web service è pubblicato  utilizzando

dei protocolli standard in modo che possa essere trovato,

identificato, verificato ed utilizzato da un altro computer o

periferica che sia in grado di accedervi.  La neutralità è la

base del concetto dei Web service.  Un web service DEVE

essere neutrale dal fornitore, dalla piattaforma, dal

protocollo e dal linguaggio

La seconda citazione [LON04], più sintetica, fonda le basi dei webservice

sul linguaggio XML:

Web service: applicazione identificata da un URI la cui

specifica può essere definita, descritta e pubblicata mediante

meccanismi basati su XML e che supporta l'interazione

diretta con altre applicazioni mediante messaggistica XML su

protocolli Internet-based.

Entrambe le definizioni centrano l’obiettivo, in quanto i punti di forza di un

webservice sono esattamente l’essere basato su XML e al contempo essere

piattaforma indipendente.

Ecco invece l’ultima definizione [Cau01] che sembra riassumere tutte le

altre in modo completo:

I webservice sono applicazioni modulari auto-descrittive che

possono essere pubblicate, localizzate e invocate da qualsiasi

punto del Web o da qualsiasi rete locale basata sugli

standard di Internet. Essi combinano i migliori aspetti della

programmazione basata sui componenti e quella su web;

vengono distribuiti sottoforma di moduli che possono essere

riutilizzati senza preoccuparsi di come il servizio venga

implementato, del linguaggio e del sistema operativo in cui è

stato scritto, di che moduli sono stati necessari per la sua

creazione. Questa filosofia è anche nota col nome di “black

box reuse”. I web service sono accessibili grazie a protocolli

web come HTTP o SMTP e sono basati su XML.

2.1.2 Nascita dei Webservice

Letteralmente, i webservice sono servizi (forniti via) web. Con l’evolversi

delle tecnologie nel tempo, ci si sta spingendo verso la globalizzazione

della rete internet, non tanto per il raggiungimento di quante più

informazioni sia possibile reperire, quanto per l’aumento esponenziale dei

computer collegati alla rete mondiale. Fino a qualche tempo fa, la realtà di

molti utilizzatori di computer (soprattutto in ambito industriale) vedeva reti

aziendali LAN, anche in larga scala, ma senza che queste avessero un

accesso internet; ogni macchina era fine a se stessa o, al massimo,

all’ambito locale della ditta.

Il passo successivo è stato quello di permettere ai computer un accesso alla

rete, principalmente con lo scopo di ottenere e scambiare informazioni con

computer diversi (es. altre filiali della stessa azienda o collaborazione con

altre aziende).

La nascita dei webservice è dovuta ad un ulteriore passo in avanti: la

sperimentazione di fornire non solo informazioni, ma anche servizi veri e

propri. Si passa dalla semplice consultazione alla richiesta di eseguire

operazioni. La differenza è sottile, in realtà presuppone un meccanismo a

monte assai più complesso ma allo stesso tempo flessibile e quindi

personalizzabile.

Vediamo un semplice esempio:

supponiamo che un ipotetico sito internet renda disponibile l’elenco

telefonico di una città.

Prima dell’avvento dei webservice, tutti i nomi degli utenti telefonici

sarebbero stati riportati tramite diverse pagine HTML contenenti, in ordine

alfabetico, tutti gli utenti:

23

Figura 4 - Esempio di gestione dati senza webservice

Molto semplice, ma assai lungo e scomodo, immaginando un numero

ragionevolmente grande di utenti.

Applicando invece un meccanismo di archiviazione dati e di ricerca tramite

degli script web-based (asp, php o un qualsiasi linguaggio server-side) si

può modificare il modello sopraccitato in questo modo:

Figura 5 – Esempio di gestione dati gestiti con webservice

24

Tralasciando il fattore estetico, dal punto di vista del carico di calcolo, la

seconda soluzione è sicuramente più leggera e veloce in quanto il

caricamento dei dati avviene on demand e la ricerca può essere agevolata

dalle tecnologie che stanno a monte, ovvero dalla parte del server che

risponde. Non solo, ci può essere una politica di selezione che permetta o

meno l’accesso a certi contenuti a seconda dell’utente che sta richiedendo le

risorse, e questo apre infinite possibilità di personalizzazione.

Nel capitolo successivo vedremo SOAP, un protocollo che è diventato lo

Standard per il web service information exchange.

2.2 SOAP

2.2.1 Prime implementazioni: XML-RPC

Quando venne sviluppato XML, verso la fine degli anni 90, subito gli

operatori del campo ebbero a disposizione un nuovo strumento per

esprimere una complessa struttura di informazioni e messaggi in modo

uniforme e auto-esplicativo. Questo portò ad usare XML nella

formattazione dello scambio di messaggi tra i vari sistemi. Un approccio di

questo tipo avrebbe permesso di scambiare messaggi ben formattati tra

un’insieme eterogeneo di sistemi in un modo estensibile, auto-descrittivo e

auto-documentante, senza preoccuparsi di quale sistema operativo o

linguaggio di ambiente fosse presente su quei sistemi.

Una delle prime e più note implementazioni di protocolli di comunicazione

basati su XML è XML-RPC (XML Remote Procedure Call). Nello

specifico permette di richiamare procedure su macchine remote senza

doversi preoccupare riguardo le specifiche dei loro sistemi operativi o dei

linguaggi d’ambiente presenti su di esse. Queste macchine potrebbero

essere ovunque su Internet o più semplicemente all’interno di una Intranet,

unico requisito è che siano connesse via HTTP.

XML-RPC è un protocollo molto semplice e facilmente utilizzabile

(contiene infatti solo XML e nessuna parte di dati binari). Proprio per

25

questo sono state create varie implementazioni per i maggiori linguaggi e

sistemi operativi. A dispetto di questi punti di forza e del fatto che XML-

RPC fosse precursore nel suo campo, non venne scelto dalla maggior parte

di distributori (di software); sorte differente toccò invece al suo successore,

SOAP.

Due importanti lacune di XML-RPC furono la “prolissità” nella

rappresentazione dei dati e la mancanza di una scrittura agevole di questi.

Esso venne messo alla prova attraverso la codifica di strutture e di altri tipi

più complessi di dati come gli array. Quando XML-RPC venne creato,

infatti, l’idea dei tipi di dati XML specificati tramite uno schema XML, era

ancora lontano dall’essere realizzata. Tutta l’esperienza, positiva e negativa,

ottenuta con il lavoro su XML-RPC, venne utilizzata nella creazione di

SOAP.

2.2.2 Definizione di SOAP

La definizione di SOAP data dal W3C, il consorzio che sviluppa le

tecnologie (specifiche tecniche, linee guida, software e strumenti) per

l’utilizzo (al meglio) del Web è:

S.O.A.P. (Simple Object Access Protocol) è un protocollo per

lo scambio di informazioni in un ambiente distribuito e

decentralizzato.

E’ un protocollo basato su XML che consiste di tre elementi:

Un busta (envelope) che definisce un framework per la

descrizione del contenuto di un messaggio e per le modalità

di utilizzo dello stesso.

Un insieme di regole per esprimere istanze di tipi di dati

definiti da una applicazione.

Una convenzione per rappresentare le chiamate di procedure

remote (RPC- Remote Procedure Call) e relative risposte.

26

Può essere utilizzato in concomitanza con una varietà di altri

protocolli.

In questa definizione [W3C00] viene citata la possibilità di integrazione con

altri protocolli per il trasporto dati (FTP, MIME, etc.) ma le specifiche

descritte fanno riferimento esclusivamente a HTTP e HTTP Extension

Framework.

Si è optato per HTTP in modo da ovviare alle problematiche risultanti da un

utilizzo di SOAP per la comunicazione di due applicazioni in un ambiente

in cui siano presenti firewall, proxy, etc.

Nello specifico, un messaggio SOAP, viene implementato come parte di

una richiesta o di una risposta HTTP.

Un altro elemento che ha spinto per l’utilizzo del protocollo HTTP come

tramite di SOAP è stata la sua grande diffusione: si può infatti affermare

con discreta certezza che praticamente ogni computer in connessione di rete

supporti il protocollo HTTP.

Ne risulta che lo scopo finale di SOAP sia di garantire una comunicazione

computazionalmente semplice e leggera tra due applicativi in uno scenario

in cui possono sussistere piattaforme diverse su infrastrutture preesistenti.

2.2.3 L’architettura di SOAP

Il modello classico di scambio messaggi in SOAP prevede un mittente che

manda un messaggio ad un destinatario. A seconda del tipo di operazione

richiesta nel messaggio, il destinatario dovrà o meno mandare una conferma

(risposta) alla richiesta del mittente.

Operativamente, quello che accade quando un applicativo SOAP riceve un

messaggio da un altro applicativo, esegue la seguente sequenza di verifiche:

Identificazione del messaggio in tutte le sue parti.

Verifica che le parti precedentemente identificate siano supportate,

con conseguente tralascio delle parti opzionali.

27

Eventuale inoltro del messaggio verso altre destinazioni se non si è il

destinatario finale; prima dello smistamento verso il destinatario

successivo, eliminazione o aggiunta di informazioni al messaggio

stesso.

Figura 6 – Schema funzionamento messaggistica SOAP

2.2.4 Elementi di un messaggio SOAP

Per facilitare la comprensione del messaggio SOAP, si è pensato di

strutturarlo come una comune lettera postale.

I tre elementi che ne compongono il modello sono:

un Envelope (busta) da contenitore esterno

un Header (intestazione) di varie informazioni per la corretta

spedizione del messaggio

un Body (corpo) con il testo del messaggio

28

Da un punto di vista sintattico XML, devono essere soddisfatte le seguenti

regole:

elemento Envelope: radice del documento (obbligatorio); può

contenere dichiarazioni di namespace ad hoc e altri attributi.

elemento Header: (opzionale); se presente, deve essere il primo figlio

dell’elemento Envelope; può contenere elementi figli, ma solo se

qualificati da un namespace.

elemento Body: (obbligatorio); deve essere il primo figlio

dell’elemento Envelope o il secondo se è presente l’elemento

Header; come l’elemento Header può contenere elementi figli, ma

solo se qualificati da un namespace.

Graficamente si potrebbe rappresentare un messaggio SOAP nel modo

seguente:

Figura 7 – Rappresentazione grafica di un messaggio SOAP

Ecco infine un esempio di ipotetico messaggio SOAP tradotto in pseudo-

sintassi XML<names:Envelope dichiarazione namespace>

<names:Header>

Attributi del messaggio

29

</names:Header>

<names:Body>

Dati da spedire

<names:Fault>

Gestione degli errori

</names:Fault>

</names:Body>

</names:Envelope>

30

3 BIZTALK

3.1 La nascita di BizTalk

Nel settembre 1998, a Las Vegas, Microsoft ospita il suo primo Business

Application Conference in cui rivela la sua visione del futuro delle

infrastrutture informatiche per il commercio. Questa visione fa

pesantemente affidamento sulla tecnologia COM e DCOM (COM

distribuita) per creare un’architettura internetwork chiamata Windows

Distributed interNet Applications (windows DNA).

Microsoft anticipa alle aziende che utilizzerà Windows DNA per creare

processi digitali interni basati su una combinazione di hardware e di

software che viene chiamato Digital Nervous System. Questo fornirà alle

aziende l’opportunità di creare informazioni condivise, di appiattire la

struttura di gestione e potenziare gli utenti nella presa di decisioni. Tutto ciò

per abbassare le barriere che esistono tra i vari partner commerciali.

Nel marzo successivo, a San Francisco, durante il Commerce Solutions

Briefing, Microsoft espone alla stampa la strategia che intende adottare nei

due anni successivi per i suoi prodotti con tecnologie Internet:

un’architettura per il commercio basata sul nuovo (per l’epoca) eXtensible

Markup Language (XML) e che prenderà il nome di BizTalk.

L’intento è quello di riunire tutte le piccole e medie imprese in una unica

rete di partner Microsoft, e che possano utilizzare un framework attraverso

varie piattaforme per eseguire transazioni economiche.

In quel periodo si puntava molto sul crescente interesse che si stava

formando intorno a XML e lo si voleva far divenire lo standard per lo

scambio inter-piattaforma dei dati, proprio come RTF (Rich Text Format)

lo era per lo i file di testo formattati.

Il perché XML era così importante, è facile da capirsi: ognuno poteva

creare i tag (delimitatori) desiderati per spiegare la struttura e i contenuti dei

dati stessi. Era veramente semplice suddividere i dati in tag e referenziarli,

indicizzati, su Web. Il suo punto di forza era che il mittente e il destinatario

del messaggio potevano accordarsi sui tag da utilizzare, e fare affidamento

quindi su applicativi che si occupavano del parsing, agendo di conseguenza

secondo schemi concordati a priori.

3.2 Il consorzio per Biztalk

BizTalk è un progetto nato dall’unione di un consorzio di industrie mondiali

sia del campo dell’informatica che di altri ambiti.

L’obiettivo è quello di implementare il B2B con degli applicativi che

comunichino tra loro anche in ambiente eterogeneo da un punto di vista del

software.

Tale scopo può risultare abbastanza ambizioso visto che fino a qualche

anno fa la tendenza delle aziende era quello di crearsi reti interne per la

gestione delle risorse e di mantenere le fonti dei dati in modo appositamente

privato perché ritenuto più sicuro. Un cambio di rotta come quello che stava

attraversando la politica produttiva, metteva in serio problema l’azienda che

si vedeva rallentata –nel processo produttivo– dalla scelta di rimanere

autonoma, fatta quando ancora non si immaginava potesse esistere il B2B.

La situazione attuale è che il livello di informatizzazione è giunto ad un

bivio a causa delle scelte progettuali del passato. Se si vuole migliorare

ancora e rendersi competitivi sul mercato (sempre più affollato da società

dell’industria informatica o che fanno uso della stessa) occorre rendere

ancor più veloce lo scambio di dati e automatizzare il maggior numero di

procedure possibili per lo scambio di servizi.

Di conseguenza a questi nuovi requisiti di competitività, subentrano anche

problematiche di tipo economico.

Non è pensabile che grandi aziende che hanno investito considerevoli

somme di denaro in sistemi che oggi risultano al limite dell’obsoleto non si

pongano il problema del “come muoversi”. Meglio investire in nuovi

programmi o cercare di adeguare i sistemi esistenti?

La risposta varia a seconda della situazione. Certo è che alla base del

progetto BizTalk c’era anche la volontà di venire incontro alle aziende in

modo non totale: non c’era quindi l’intenzione di obbligare la sostituzione

totale del sistema preesistente.

3.3 Miscrosoft BizTalk Server

BizTalk Server è la proposta di Microsoft per affrontare il tema B2B

nell’ambito del progetto BizTalk.

Il suo scopo finale è quello di fornire una piattaforma inserita nella famiglia

Windows Server che permetta all’utente di integrare in modo efficiente i

sistemi, gli impiegati e i partner commerciali in modo più veloce rispetto al

passato [MIC04a].

Citando il sito Microsoft [MIC04b]:

[BizTalk] è un potente strumento di gestione per i moderni

processi di business sia interni all'azienda che interaziendali.

Il pieno supporto XML e SOAP 1.1 lo rende una piattaforma

programmabile ed estremamente flessibile, in grado di

assicurare veloci e sicure relazioni B2B su Internet.

Al giorno d’oggi, nell’economia mondiale, le aziende necessitano di

integrare applicativi, sistemi e tecnologie provenienti da una grande varietà

di risorse. Per facilitare questo compito Microsoft tenta di fornire il sistema

più integrato possibile ed espande l’offerta con altri prodotti che fungono da

acceleratori e adattatori verso e attraverso i partner commerciali.

E’ ovvio che l’obiettivo chiave della campagna pubblicitaria di Microsoft,

l’integrazione, diventa facilmente raggiungibile dal momento in cui la

33

piattaforma, i sistemi di sviluppo nonché i motori sottostanti sono stati

sviluppati dalla stessa Microsoft.1

Come vedremo più avanti nei requisiti di sistema, BizTalk Server punta

sull’utilizzo di tutte le potenzialità fornite dagli altri prodotti della stessa

famiglia installati sulla macchina.

Per sfruttare ancora meglio le ultime versioni dei suddetti software, si è

deciso, con la versione 2004, di non supportare più sistemi operativi

precedenti a Windows 2000. Anche questa risulta una scelta politica poco

popolare ma necessaria per reinvestire fruttuosamente una serie di risorse

attualmente impegnate nel mantenimento della compatibilità all’indietro.

3.4 Il framework di BizTalk

Proprio perché BizTalk deve fornire una piattaforma comune a tutti per lo

scambio di informazioni, è comprensibile che debba sottostare esso stesso a

regole ben precise, soprattutto per quel che riguarda la sua struttura.

Ecco di seguito come deve essere necessariamente strutturato un messaggio

BizTalk:

<BizTalk_1 xmlns=”namespace”>

<Header>

<Delivery>

<Message>

<From>

</From>

<To>

</To>

</Message>

1 Questo tema, compreso il problema del monopolio di mercato e l’antitrust, sono

argomenti assai dibattuti e che sono stati protagonisti di diversi ed importanti capitoli

della storia del software moderno (alcuni dei quali ancora aperti), ma non verranno trattati

in questa tesi.

34

</Delivery>

<Manifest>

</Manifest>

</Header>

<Body>

</Body>

</Biztalk_1>

La struttura ricorda quella di un documento HTML (non a caso anche

HTML è un markup language), con Header in cui specificare le

informazioni “di servizio” e con un tag Body che contiene gli effettivi

contenuti da spedire.

3.5 Requisiti del sistema

Come anticipato in precedenza BizTalk Server 2004 necessita delle ultime

versioni dei software Microsoft per sfruttare a pieno le sue potenzialità.

Comprensibilmente le installazioni di server e client hanno requisiti ben

differenti.

3.5.1 Requisiti di sistema per un server

Sistema operativo

o Microsoft Windows® 2000 Server with Service Pack 4

o Windows XP Professional sp1 su NTFS file system

o Microsoft Windows Server™ 2003 Standard, Enterprise, o

Datacenter Edition (certe funzionalità avanzate quali Business

Activity Services e Windows SharePoint™ Services è

necessario Windows Server 2003).

Ambiente di sviluppo software

o Microsoft Visual Studio® .NET 2003 con Microsoft Visual

C#® .NET

Gestione e analisi delle fonti dati

35

o Microsoft SQL Server™ 2000 Enterprise, Standard, o

Developer Edition sp 3a

o Microsoft SQL Server 2000 Analysis Services sp 3a

Sistema di comunicazione (intranet e internet)

o Windows SharePoint™ Services

3.5.2 Requisiti di sistema per un client

Sistema operativo

o Windows XP Professional sp1, Windows 2000 sp4, o

Windows Server 2003 (il sistema operativo di questi tipi è

necessario se si utilizza un metodo di autenticazione Single

Sign-On (SSO)2

Sistema di raccolta informazioni

o Microsoft Office InfoPath™ 2003

Browser

o Microsoft Internet Explorer 6 sp 1

3.6 Panoramica su BizTalk Server

Vediamo ora alcuni dettagli della versione 2004 del prodotto di Microsoft.

Come per le versioni precedenti (BizTalk Server 2002 e 2000) un aspetto

fondamentale del programma è l’integrazione in ambiente Visual Studio.

Nel caso dell’ultima versione disponibile questa integrazione è pressoché

totale in Visual Studio .NET.

Di seguito vedremo alcune immagini tratte dal sito Microsoft [MIC04a].

2 Single Sign-On (SSO) è un meccanismo in cui un’unica azione di autenticazione o di

autorizzazione può consentire ad un utente di accedere a tutti i computer e ai sistemi in

cui ha il permesso di accedere, senza che debba inserire più volte la password. Questo

meccanismo riduce la possibilità di errore umano (una delle principali cause di failure nei

sistemi) ma proprio per la “sensibilità” dell’ambito in cui viene applicato, è difficile da

implementare.

36

3.6.1 Regole e politica della ditta

Poiché le regole aziendali cambiano più spesso dei processi, ne vengono

aggiunte sempre di nuove per fornire una certa flessibilità. Queste risultano

dall’astrazione tra i codici dei processi e quelli degli utenti. E’ consigliato

utilizzarle per gestire sia piccole realtà sia, in modo più completo, situazioni

più complesse.

Figura 8 - Microsoft Business Rule Composer

3.6.2 Ambiente di sviluppo unificato

Il programma permette una mappatura tra i differenti schemi dei documenti

XML. Questo grazie al mapper presente in Visual Studio .NET.

37

Figura 9 – Mappatura tra schema

E’ possibile avere una visione grafica d’insieme grazie all’Orchestration

Designer.

Figura 10 – BizTalk Orchestration Designer

38

Anche la creazione di nuovi schemi XML o l’adattamento di quelli pre-

esistenti, risulta facilitato grazie agli editori avanzati.

Figura 11 – XML Schema Editor

3.6.3 Progettazione di processi aziendali complessi

Già inserita nel programma viene fornita le predisposizione per un insieme

di linguaggi per l’esecuzione di processi aziendali (Business Process

Execution Language for Web Services - BPEL4WS), tra cui:

processi innestati

transazioni a lungo termine

correlazioni semplificate

mappatura flessibile tra messaggi

3.6.4 Sistema di tracciamento realtime per amministrazione e debug

E’ possibile tenere sotto controllo il processo aziendale dall’inizio alla fine

del suo iter, sospenderlo, ripristinarlo, analizzarlo in ogni suo singolo

istante.

39

Figura 12 – Orchestration Debugger

3.6.5 Gestione dei partner commerciali di larga scala

E’ prevista una gestione delle relazioni tra migliaia di partner commerciali.

Le relazioni sono separate dai processi per permettere un loro riutilizzo in

modo rapido e funzionale.

Così facendo si possono configurare i profili di nuovi partner, comunicare

con loro tramite protocolli di comunicazione e messaggistica eterogenea,

gestire infine una grande varietà di formati dei dati.

40

Figura 13 – BizTalk Explorer

3.6.6 Integrazione in Microsoft Office e Microsoft InfoPath

Tramite l’integrazione con Office, è possibile guidare i documenti di

InfoPath attraverso un’azienda, e permettere l’inserimento dei dati dagli

stessi documenti al sistema centrale, mantenendo i moduli esistenti o

creandone di nuovi.

41

Figura 14 – Form di InfoPath

3.6.7 Semplificazione dell’interazione tra sviluppatori ed analisti

E’ possibile mantenere come strumento di analisi Microsoft Visio e

riprodurre lo stesso processo nell’ambiente di sviluppo di BizTalk

(Orchestration Designer). Verrà mantenuta la sincronizzazione tra i due e i

dati rimarranno consistenti.

Il confronto tra il processo sviluppato grazie a Microsoft Visio, e il suo

rappresentato in Orchestration Designer, si spiega da solo.

Il fatto di non dover cambiare il sistema di analisi, è indubbiamente un

grosso vantaggio sia dal punto di vista economico, che dal punto di vista del

tempo impiegato nell’istruzione del personale addetto e nell’analisi.

42

Figura 15 – Microsoft Visio

3.6.8 Monitoraggio dell’attività commerciale

Con il Business Activity Monitoring, gli analisti possono definire l’insieme

dei dati sensibili da raccogliere ed interpretare. Gli utenti possono vedere le

attività e -ogni giorno- eseguirne le relative operazioni commerciali. I

processi vengono monitorati e i dati vengono salvati in formati leggibili

anche ai non analisti, grazie alle facilitazioni fornite dall’applicativo

Microsoft SharePoint.

43

Figura 16 – Tracking Profile Editor

3.7 Acceleratori per BizTalk Server

Gli acceleratori sono utilizzati per un largo spettro di scenari commerciali e

industriali, dall’hi-tech alla sanità. Essi forniscono nuove funzionalità e

fungono da complemento tra gli applicativi del sistema Windows Server

System™, riducendo considerevolmente il tempo, le risorse e i costi

associati alla progettazione del sistema, allo sviluppo e alla gestione dello

stesso.

Gli acceleratori sono in pratica un insieme di pacchetti aggiuntivi per i

software già installati in azienda, semplici strumenti, documentazione ed

esempi sviluppati per far sì che il lavoro del sistema venga ottimizzato.

Vediamo quali sono, al momento, gli acceleratori disponibili insieme al

pacchetto BizTalk Server; sono elencati anche i servizi specifici che offrono

a seconda del tipo:

Cactus GDS

o Minori costi di amministrazione

44

o Logistica migliorata

o Facile integrazione

HIPAA

o Risorse affidabili

o Tecnologia avanzata per il settore sanitario

o Gestione fiscale

HL7

o Sistema di messaggistica intelligente

o Tecnologia avanzata per il settore sanitario

o Migliore rapporto del tempo per la qualità

SWIFT

o Messaggistica finanziaria pronta per il futuro

o Possibilità di automazioni fino ad ora mai sviluppate

o Integrazione InfoPath 2003

RosettaNet

o Rapida implementazione

o Maggiore flessibilità

o Riduzione dei costi

3.8 Adattatori

Gli adattatori per BizTalk Server espandono la capacità del prodotto per

rendere effettivamente semplici le installazioni, lo sviluppo e la

configurazione delle soluzioni per la connettività. Il loro obiettivo è di

eliminare la necessità di produrre componenti per le infrastrutture come

supporti per i protocolli di rete, per la traduzione, conversione e la

trasformazione dei dati.

Forniscono quindi una chiave per migliorare l’interoperabilità tra BizTalk e

una vasta gamma di programmi legati al B2B.

45

Di seguito riporto un elenco di applicativi per cui sono stati creati degli

adattatori.

Applicativo Adattatore fornito da

Ascentn Ascentn

BOC Information Systems

GmbH

BOC Information Systems

GmbH

Capco Capco

Captaris Captaris

Cincom Cincom

eCraft Management Solutions eCraft Management Solutions

Fenestrae Fenestrae

Intercim Intercim

J.D. Edwards iWay

Metastorm Metastorm

Oracle Financials iWay

Peoplesoft iWay

SAP iWay

Scala Business Solutions Scala Business Solutions

Siebel iWay

Siebel Systems Siebel Systems

SolutionForge Ltd. SolutionForge Ltd.

SourceCode SourceCode

Sysrepublic Sysrepublic

Temenos Temenos

Ultimus Ultimus

VisionAIR VisionAIR

Visionware Visionware

46

Oltre agli adattatori per applicativi veri e propri, sono stati sviluppati anche

adattatori per tecnologie, assai più diffuse e note dei singoli programmi.

Tecnologia Adattatore fornito da

2392A terminals WRQ

3270 terminal emulation WRQ

5250 terminal emulation WRQ

70092 terminals WRQ

ACORD Itemfield

ACORD AL3 Itemfield

ACORD XML Itemfield

Adabas Attunity

AFP Itemfield

AS/400 File System WRQ

ASCII ANSI Itemfield

ASCII Unicode Itemfield

ASTM Itemfield

Basic Attunity

Btrieve Attunity

C Attunity

Cargo IMP Itemfield

Choicepoint CLUE Itemfield

CICS Attunity, WRQ

CISAM Attunity

COBOL Attunity, Itemfield

CORBA iWay

cXML Itemfield

DB2 WRQ

DB2 for AS/400 and OS/390 WRQ

DB2, UDB Attunity

47

Tecnologia Adattatore fornito da

DBMS Attunity

Delimited Text Files Attunity

DISAM Attunity

EBCDIC Itemfield

ebXML Itemfield

EDI x.12 Itemfield

EDI-Fact Itemfield

Enscribe Attunity

FIX Itemfield

Flat Files Itemfield, Attunity

Fortran Attunity

HL7 Itemfield

HTML Itemfield

IFX Itemfield

IMS WRQ

IMS/DB Attunity

IMS/TM Attunity

Informix Attunity, WRQ

Ingres, Ingres II Attunity

JetForms Itemfield

LegalXML Itemfield

Microsoft Excel Itemfield

Microsoft PowerPoint Itemfield

Microsoft Word Itemfield

MQ Series iWay

MVR Itemfield

Naural Attunity

NonStop SQL/MP Attunity

ODBC-compliant databases WRQ

48

Tecnologia Adattatore fornito da

Oracle DB WRQ

Oracle DB, Rdb Attunity

Pathway Attunity

PCL Itemfield

PDF Itemfield

PostScript Itemfield

PowerPoint Itemfield

RDMS iWay

RMS Attunity

RPG Attunity, Itemfield

SAP R/3 WRQ

Siebel WRQ

SQL Server Attunity,WRQ

StarOffice Itemfield

SWIFT Itemfield

Sybase Attunity, WRQ

Tuxedo Attunity

Undocumented Binaries Itemfield

VSAM Attunity, WRQ

VT102 terminals WRQ

VT400-7 terminals WRQ

VT400-8 terminals WRQ

VT52 terminals WRQ

WordPerfect Itemfield

XML Attunity ,Itemfield, iWay

Come si può notare, il numero di tecnologie supportate dagli adattatori è

elevato. Per le tecnologie più diffuse, più di un produttore di software ha

49

creato un adattatore; un esempio su tutti (e anche il più logico, viste le

premesse del B2B) è XML.

50

4 EBXML

4.1 Definizione di ebXML

ebXML (Electronic Business Extensible Markup Language) è un progetto

internazionale ideato da UN/CEFACT (United Nation Center for Trade

Facilitation and Electronic Business) e da OASIS (Organization for the

Advancement of Structured Information Standard).

L’obiettivo del progetto è quello di fornire un framework che permetta al

linguaggio XML di essere utilizzato in modo uniforme e consistente nello

scambio di messaggi tra applicativi e utenti in un contesto di commercio

elettronico.

Il vantaggio fornito da ebXML è apprezzabile anche per aziende di piccola

e media grandezza e che abbiano un livello di informatizzazione anche

minimo; la possibilità che viene fornita da ebXML è uno scambio di

messaggi basati su XML che favorisca il commercio elettronico della ditta

con altre strutture (della stessa società o di ditte diverse) geograficamente

localizzate in luoghi diversi.

Questo vantaggio è garantito da un vocabolario di termini comuni che

permette una comunicazione commerciale con messaggistica di tipo

standard.

4.2 Perché ebXML?

Qualcuno potrebbe chiedersi il perché della necessità di un altro linguaggio

basato su XML [Dau04]. Sembra infatti che ogni giorno venga sviluppato o

modificato uno standard XML, e che uno dopo l’altro vengano propinati

indistintamente al settore industriale e al pubblico. Questa corsa senza sosta

causa una notevole confusione, in cui gli utilizzatori delle tecnologie

correlate devono valutare il costo (economico e in termini di risorse) di un

passaggio dagli standard usati fino a quel momento alle nuove versioni in

XML; e il tutto, cercando di mantenere sicurezza e affidabilità.

L’alto numero di linguaggi XML particolareggiati, è parzialmente dovuto

alla semplicità dell’XML stesso; ma esso, da solo, non è infatti sufficiente

per portare a termine progetti senza demandare compiti specifici ad altre

entità. Si devono sviluppare specifiche su specifiche per dare all’XML la

forma necessaria per essere impiegato in ambiti particolareggiati. La

tendenza degli ultimi anni è quella di sviluppare standard sempre diversi,

cercando di riprodurre in XML ogni possibile formato di dati o di

interazione.

A differenza di questi, ebXML non è un tentativo come tanti di

cambiamento dal formato delle transazioni d’affari non-XML EDI

(Electronic Data Interchange). Ciò che lo differenzia dagli altri linguaggi

basati su XML sono importanti vantaggi dal punto di vista concettuale,

principalmente dovuti alla visione ad hoc di ebXML.

4.3 Un sistema ad hoc

Una delle maggiori capacità di ebXML è quella di fornire dei contatti

d’affari ad hoc. Sebbene questa affermazione possa lasciare intendere

malfunzionamenti non programmati ed eventi inaspettati, è in realtà la

caratteristica che permette a ebXML di effettuare transazioni di commercio

elettronico in modo così efficace.

Vediamo un esempio per chiarificare il concetto.

Supponiamo di comperare ortaggi da un supermarket A. Dopo diverso

tempo abbiamo sviluppato una relazione d’affari con il supermarket, basato

sui prodotti forniti e sul processo intrapreso per comprarli, come

l’interazione con i commessi e il pagamento tramite carta di credito dei

beni. Possiamo definire questa relazione ad hoc.

Supponiamo ora che entri nel marcato un nuovo supermarket B, che venda

lo stesso prodotto a prezzi inferiori. Sarebbe nel nostro interesse

intraprendere degli affari con questo nuovo supermarket, e possiamo farlo

perché ci aspettiamo di non incontrare ostacoli: i commessi si

comporteranno come nel primo supermercato (parlano la nostra stessa

lingua) e possiamo pagare la merce con la carta di credito.

Il commercio elettronico, in realtà, ha costi di infrastrutture che influiscono

sul prezzo totale dell’affare. Durante una transazione elettronica, per

esempio, i partecipanti devono affrontare i costi del software, del trasporto

dati, così come decidere le politiche di interazione e sicurezza.

In pratica, se un nuovo fornitore offrisse beni a minor prezzo, potrebbe

accadere di dover considerare i costi del servizio di acquisto come elemento

discriminante. Ad un minor costo del prodotto potrebbe infatti

corrispondere un maggior costo o complicazione del processo di acquisto.

Tornando all’esempio precedente, se il supermercato B avesse solo

commessi stranieri, che parlassero esclusivamente una lingua diversa dalla

nostra e non venissero accettati pagamenti con carta di credito ma solo con

contanti e di piccolo taglio, è facile comprendere che il risparmio ottenuto

sul bene acquistato andrebbe perso nell’adeguamento alle condizioni di

vendita imposte.

Uno dei valori basilari di ebXML è una visione di ubiquità da una

prospettiva tecnologica. E’ costruito su XML, SOAP, HTTP e SMTP, tutti

standard aperti e senza barriere. In teoria, mettere al centro l’ubiquità della

tecnologia, dovrebbe permettere al commercio elettronico un approccio ad

hoc al concetto di libero mercato che abbiamo visto nell’esempio del

supermercato.

4.4 Panoramica su ebXML

Per ottenere un approccio ad hoc, come visto nel capitolo precedente,

ebXML fornisce un framework completo per le interazioni d’affari, tutto

inviato come un insieme di specifiche indipendenti dal partecipante

all’affare. Il framework cerca di soddisfare i seguenti punti:

53

Descrivere il processo e le interfacce specifiche

Condividere il processo con altri partner

Conoscere quali processi può supportare il partner

Descrivere i messaggi per una particolare transizione

Descrivere la politica di sicurezza e la configurazione tecnica da

usare

Se il partner commerciale può fornirci una sua descrizione in questi termini,

è già un buon passo verso lo scopo che ci siamo prefissati.

Molte di queste informazioni possono essere salvate in un registro

condiviso che ha lo scopo di rendere centralizzati gli accordi dell’affare e i

processi. Questa locazione comune è conosciuta come ebXML registry.

Oltre alla registry esistono delle specifiche per l’attuale livello di scambio

di messaggi come per le informazioni sui processi e per la collaborazione.

Questo insieme può essere suddiviso nel modo seguente:

Registro condiviso e centralizzato: Registry Information Model

(ebRIM), Registry Services Specification (ebRS)

Processi dell’affare e collaborazione: Business Process Specification

Schema (ebBPSS), Collaboration-Protocol Profile and Agreement

Specification (ebCPPA)

Messaggistica: Message Services Specification (ebMS)

4.5 Struttura di ebXML

Vediamo ora in dettaglio gli elementi, sia quelli già menzionati che altri

nuovi, di cui è composto lo schema di ebXML [MER01]:

Registry: un server centrale che contiene una varietà di dati necessari

per il funzionamento di ebXML. Tra le varie informazioni che la

Registry mette a disposizione di XML troviamo: Business Process &

Information Meta Models, Core Library, Collaboration Protocol

Profiles, e Business Library. Fondamentalmente, quando si vuole

iniziare un a relazione ebXML in un affare, è necessaria una Registry

54

per individuare un partner adatto e per ricavare informazioni

riguardo agli elementi necessari per rapportarsi con quel partner.

Business Processes: attività che un’impresa può intraprendere (e per

la quale sta cercando uno o più partner). Un Business Process è

formalmente descritto da uno Schema di Specifiche (Business

Process Specification Schema: uno Schema XML e un DTD dettati

da W3C), ma potrebbe essere modellato anche in UML (Unified

Modeling Language).

Collaboration Protocol Profile (CPP): profilo archiviato con una

Registry da un’impresa che vorrebbe intraprendere delle transizioni

ebXML. Il CPP specifica alcuni Business Process dell’impresa e

anche alcune Business Service Interface supportate.

Business Service Interface: i modi in cui un’impresa è capace di

portare avanti le transazioni necessarie nei suoi Business Process. La

Business Service Interface include inoltre i tipi di Business Message

supportati e i protocolli sui quali questi messaggi dovranno

viaggiare.

Business Message: le informazioni correnti comunicate come parte

della transazioni d’affari. Un messaggio contenente diversi strati. Al

livello più esterno deve essere utilizzato in protocollo di

comunicazione (tipo HTTP o SMTP). SOAP viene raccomandato

come envelope (busta, strato esterno) per un messaggio “payload”.

Gli altri strati possono concernere criptazione o autenticazione.

Core Library: un insieme di “parti” standard che possono essere

utilizzate in elementi ebXML più grandi. Per esempio i Core Process

possono essere referenziati dai Business Process. Alla Core Library

contribuisce l’iniziativa ebXML stessa, mentre agli elementi più

grandi possono contribuire specifiche imprese o industrie.

Collaboration Protocol Agreement (CPA): in pratica, un contratto tra

due o più imprese che può essere derivato automaticamente dai CPP

55

delle rispettive compagnie. Per esempio se un CPP afferma “Io

posso fare X”, un CPA afferma “Noi faremo X insieme”.

Simple Object Access Protocol (SOAP): un protocollo di W3C per

lo scambio di informazioni in un ambiente distribuito sottoscritto

dall’iniziativa ebXML. La parte di SOAP interessante per ebXML è

la funzione di envelope che definisce un framework per la

descrizione di cosa contiene il messaggio e come processarlo.

4.6 Il cuore di ebXML: la Registry

Come già visto la Registry è la parte vitale di una implementazione di

ebXML. Essa è abbastanza versatile e capace di rappresentare una vasta

gamma di dati, inclusi gli schema XML, descrizione dei processi,

componenti del kernel di ebXML, modelli UBL, informazioni generiche sul

partner commerciale e componenti software. Per poter supportare una così

grande varietà di informazioni, la Registry è ideata più o meno come un

database, ovvero con un modello di informazioni ben-formato piuttosto che

come un semplice direttorio. Questo è un punto chiave poiché alcune teorie

sostengono che la registry di ebXML sia in contrasto (o competizione) con

la registry dei servizi per i webservice XML come UDDI (Universal

Description, Discovery and Integration).

Nel concreto sono diversi gli obiettivi: mentre sarebbe possibile essere

organizzata in una directory UDDI per una registry, non è vero il contrario

poiché UDDI non è predisposto per gestire una serie dati e classificazioni

così complesse come invece fa una registry.

4.6.1 Modello informativo di una registry ebXML

Il modello centrale delle informazioni in cui è organizzata la registry è uno

schema di classificazione basato su un modello ad albero, in cui le

informazioni sulle aziende e/o partner sono gestite in modo gerarchico. Un

pregio di una registry ebXML rispetto ad una semplice gerarchia ad albero

56

è la capacità di contenere relazioni più complesse. Vediamo per esempio la

seguente gerarchia basata su una struttura ad albero [Bre04]:

Figura 17 - Modello delle informazioni in una Registry ebXML

Nella figura si possono notare alcuni elementi in grigio, questi si riferiscono

agli effettivi oggetti della registry, mentre gli elementi in bianco vengono

chiamate classificazioni.

Notare inoltre che le foglie del grafo possono fare parte di relazioni di

classificazione addizionali.

4.6.2 Interfacce della Registry ebXML

L’architettura della Registry è definita in termini di servizio di registry e di

client di registry. Il primo ha due interfacce per gestire gli oggetti del

modello informativo: gestione del ciclo di vita (lifecycle) e gestione delle

richieste (query). A sua volta l’interfaccia di gestione del ciclo di vita è

suddivisa in metodi come submitObjects, updateObjects, removeObjects, e

deprecatedObjects, che vendono utilizzati per aggiungere, modificare,

aggiornare o rimuovere gli oggetti o le classificazioni al modello

informativo. Analogamente anche l’interfaccia di gestione delle richieste ha

57

metodi come submitAdhocQuery, getRegistryObject, e getRepositoryItem

che servono per interrogare la registry.

Entrambe le interfacce sono definite usando un file in Web Services

Description Language (WSDL) fornito dal comitato tecnico che si occupa

di ebXML (OASIS ebXML Registry Technical Committee).

Alle due interfacce sono legate, in modo concreto, SOAP utilizzato su

protocollo HTTP, ebMS e il protocollo HTTP stesso; questo fa capire la

versatilità di ebXML, che può operare in scenari sia di piccola che di

grande azienda.

4.7 Fasi di funzionamento di ebXML

Accordarsi per una nuova relazione d’affari significa accedere alla registry

di ebXML che, solitamente, viene gestita dalla fase di funzionamento

corrente. L’architettura di base prevede tre fasi:

1. fase di implementazione

2. fase di scoperta-recupero (discovery - retrieval)

3. fase di esecuzione (runtime)

Per ogni fase sono definiti dei processi e dei meccanismi di sicurezza

propri. In generale si possono immaginare le prime due fasi come

un’ipotetica stretta di mano tra i due contraenti l’affare, mentre la terza

come la reale attuazione dello scambio.

4.7.1 Fase implementativa

Inizia con la decisione dei partner di svolgere una transizione d’affari

tramite il framework ebXML. Il partner analizza i suoi processi e li

pubblica nella registry preoccupandosi di renderli compatibili con la

generalizzazione fornita da ebXML. In questa fase deve essere prodotta

un’implementazione, o dalle specifiche del nucleo dei ebXML stesso o da

terzi produttori. Come risultato si ottiene un framework funzionante

58

contenente un insieme di processi e interfacce. Il Profilo del Protocollo di

Comunicazione (CPP) viene istanziato in questo momento.

Figura 18 – Fase implementativa

4.7.2 Fase di scoperta – recupero

In questa fase i partner consultano la registry per vedere (scoprire) i

processi e le interfacce pubblicate dall’altro partner. Tipicamente i CPP di

un partner specifico vengono scambiati in questa fase. Il CPP descrive i

dettagli dei processi, compresi quelli riguardanti la sicurezza, il trasporto e

l’affidabilità.

Figura 19 – Fase di “scoperta e recupero”

59

4.7.3 Fase di esecuzione

Gli accessi alla registry sono terminati nelle fasi precedenti, per cui in

questa avvengono esclusivamente gli scambi di messaggi tra i contraenti.

Le istanze di CPP pubblicate da ciascuno vengono ristrette per formare un

Accordo sul Protocollo di Collaborazione (CPA). Questo è un particolare

accordo legato alle richieste formulate dai singoli CPP. Prima di iniziare lo

scambio dei messaggi con ebMS, solitamente i due contraenti si

preoccupano di verificare la consistenza del CPA creato: quando si verifica

da entrambi i lati la consistenza, comincia lo scambio di messaggi.

Figura 20 – Fase di esecuzione

Facendo riferimento alla figura 20 possiamo riassumere la fase di runtime

in 3 passi:

Ogni partner è responsabile di ottenere i documenti CPP necessari

per accordarsi con gli altri partner. Solitamente queste informazioni

vengono ottenute tramite l’accesso ad una Registry.

Con i CPP ottenuti vengono creati i CPA, che esplicitano la gamma

di scelte offerte nei CPP.

Sotto il controllo del CPA, i partner cominciano le transazioni

tramite ebMS.

60

4.8 Formato dei messaggi ebXML

Il servizio incaricato della spedizione dei messaggi (ebMS) definisce una

serie di elementi che verranno inseriti all’interno dell’intestazione (Header)

o del corpo (Body) che soddisfano le specifiche SOAP per rendere il

messaggio compatibile con le specifiche definite da ebXML Requirements

Specifications (ebRS). Per ottenere ciò si dovranno incapsulare questi

elementi in un multipart MIME che permetterà di inserire degli allegati

nello stesso messaggio SOAP. Schematizzando il messaggio che verrà

spedito si possono individuare due parti:

Header Container, che contiene il vero e proprio messaggio SOAP

Payload Container, allegati contenenti informazioni di diverso

genere

Graficamente si può schematizzare il tutto come nella figura seguente. La

parte gialla (SOAP Envelope con allegati MIME) corrisponde al Message

Pack, la parte verde sopra (MIME part) è l’Header Container mentre la

parte verde sotto (MIME part(s))è il Payload Container.

61

Figura 21 – Formato di un messaggio ebXML

4.8.1 Header MIME delle parti del messaggio

Un messaggio ebXML ha tre intestazioni (header), una per ogni parte

MIME (SOAP envelope e Paylod container) e una per l’intero messaggio.

Vediamo ora la struttura tipica di un messaggio ebXML nella quale si può

vedere l’utilizzo delle intestazioni MIME:

1 MIME-VErsion: 1.0

2 Content-Type:Multipart/related;

62

3 boundary=boundaryValue; type=text/xml;

4 start=<[email protected]>;

5 Content-Description:

6 Optional message description

7 --boundaryValue

8 Content-ID:[email protected]

9 Content-Type: text/xml; charset=”UTF-8”

10 <SOAP-ENV:Envelope xmlns:SOAP-

ENV=”http://schemas.xmlsoap.org/soap/envelope/”>

11 <SOAP-ENV:Header>

...

12 </SOAP-ENV:Header>

13 <SOAP-ENV:Body>

...

14 </SOAP-ENV:Body>

15 --boundaryValue

16 content-ID: <domain.example.com>

17 content-Type: application/xml

18 <invoice>

19 <invoiceData>

...

20 </invoiceData>

21 </invoice>

...Altri Payload container

22 --boundaryValue—

Riga 1 – 6: Header MIME per SOAP con allegati

Riga 7 – 14: Messaggio SOAP

Riga 15 – 22: Payload Container

4.8.2 Reliable Messaging

Con “Reliable Messaging” si intende l’affidabilità del messaggio, non tanto

per il fatto che questo giunga o meno al destinatario, quanto per il fatto che

giunga una sola volta. I protocolli di trasmissione esistenti infatti sono

studiati apposta per rimediare all’eventuale perdita di un messaggio con la

63

ri-spedizione di esso. A sua volta il destinatario deve avere un meccanismo

per poter scartare i messaggi duplicati ricevuti. Solitamente la notifica del

messaggio ricevuto avviene tramite un acknowledgment (conferma) per

ogni messaggio. Inoltre il destinatario deve poter salvare i messaggi

correttamente giunti in modo da recuperare un’eventuale situazione di

interruzione della trasmissione. Di queste problematiche se ne deve

occupare il Message Service Handler.

64

5 UBL

5.1 Definizione di UBL

L’acronimo UBL (Universal Business Language) è un’estensione di libreria

di schemi XML:

L'OASIS UBL è un "Technical Committee (TC)" (comitato

tecnico) di OASIS. Lo scopo dell'UBL TC è quello di

sviluppare una libreria standard di documenti XML per il

business (ordini d'acquisto, fatture, etc.) modificando una

libreria di schemi XML preesistente (xCBL) per incorporare

le migliori caratteristiche delle altre librerie XML orientate al

business. Il TC svilupperà poi un meccanismo per la

generazione di schemi di business relativi alle singole aree

applicative attraverso l'applicazione di regole di

trasformazione sulla base della libreria di base comune UBL.

E' previsto che UBL divenga lo standard internazionale per il

commercio elettronico disponibile a tutti senza spese di

acquisto licenza o altri costi.

Oltre alla definizione suddetta [EBX04] possiamo spiegare UBL come il

prodotto di uno sforzo internazionale per definire una libreria gratuita (non

coperta da diritti o registrazioni) di documenti XML standard per il

commercio elettronico come ordini d’acquisto e fatture.

Sviluppato da un comitato aperto della OASIS, con la partecipazione di una

varietà di organizzazioni per gli standard aziendali, UBL è progettato per

inserirsi direttamente nei già esistenti ambienti commerciali, legislativi,

contabili e gestionali, eliminando la re-codifica dei dati in queste realtà

tuttora basate su fax, fatture, documenti cartacei e fornendo un accesso al

commercio elettronico per le piccole e medie aziende.

5.2 Breve storia di UBL

L’iniziativa UBL cominciò a metà del 1999 con il progetto di creare di un

set di documenti XML standard per l’ufficio con OASIS. Il Comitato

Tecnico responsabile dello sviluppo fu guidato da Sun Microsystems, forse

anche per cercare un’alternativa all’organizzazione tutt’altro che no-profit

BizTalk, guidata da Microsoft, che cominciava a concretizzare i primi passi

proprio verso la fine del 1998.

Verso la fine del 1999 però, poiché OASIS e UN/CEFACT iniziarono una

collaborazione su ebXML, il progetto UBL venne messo da parte.

L’interesse per la creazione di una sintassi XML standard per documenti

commerciali rinacque nel maggio successivo (2000), quando il comitato di

ebXML decise di omettere la sintassi XML standard per il payload3 nella

prima versione del linguaggio.

Il gruppo di lavoro che venne studiava UBL cominciò quindi nell’aprile

2001 come gruppo di discussione di CommerceNet e nel successivo

novembre venne confermato come Comitato Tecnico OASIS.

Dopo diversi anni di lavoro in cui si è studiato quali elementi fossero

necessari allo scopo di UBL, si è giunti, nel novembre 2003 al rilascio della

prima beta, mentre nel settembre 2004 alla pubblicazione delle specifiche di

UBL 1.0 [MeS04]. Per il futuro sono previsti degli ampliamenti delle

tipologie di librerie per soddisfare altre categorie di mercato quali –per

esempio– gli enti governativi.

5.3 Perché UBL?

Dopo essere stato approvato da W3C, XML è stato adottato da una vasta

serie di aziende come framework per la definizione dello scambio di

messaggi per l’e-commerce. Il suo largo utilizzo ha portato allo sviluppo di

3 Payload viene definito come i dati essenziali trasportati da un pacchetto o da una unità di

trasporto. Il payload non include l’overhead, ovvero i dati tecnici necessari per far giungere il

pacchetto a destinazione.

versioni specifiche appositamente create per i diversi settori di impiego dei

documenti fondamentali come gli ordini, le bolle e le fatture.

Ma se da un lato avere documenti altamente specifici al contesto

commerciale era sinonimo di ottimizzazione del lavoro, dall’altro il fatto di

avere documenti in diversi formati per svolgere la stessa tipologia di

funzioni era sicuramente svantaggioso.

Riassumendo, i punti che giocavano a svantaggio della specificità dei

documenti di base erano:

Lo sviluppo e il mantenimento di più versioni dei comuni documenti

commerciali significava multiplo lavoro.

La creazione e il mantenimento di adattatori che rendessero possibile

le relazioni tra industrie con standard differenti implicava un grande

impiego di risorse.

L’esistenza di più formati XML rendeva difficoltosa l’integrazione

con i sistemi di backoffice.

Il bisogno di supportare un numero arbitrario di formati XML era

costoso e non era facile trovare personale con esperienza nel settore

specifico.

UBL è stato pensato proprio con l’intento di risolvere questi problemi

definendo un formato XML interscambiabile e generico che si potesse

estendere per soddisfare le esigenze dei vari settori industriali. Ciò che

fornisce la versione 1.0 di UBL nello specifico è:

Una libreria di schema XML per dei componenti riutilizzabili come

“Address” (indirizzo), “Item” (elemento) e “Payment” (pagamento),

che sono gli elementi più comuni tra i documenti commerciali.

Un insieme più piccolo di schemi XML come “Order” (Ordine),

“Dispatch advice” (Avviso di spedizione) e “Invoice” (fattura) che

sono costituiti dai componenti di libreria di UBL e che possono

essere utilizzati in un generico contesto che va dall’ordine alla

fattura.

67

Il supporto per la personalizzazione di UBL nelle differenti realtà

commerciali.

Una base standard per gli schemi commerciali XML doveva, inoltre, fornire

dei vantaggi come:

Basso costo di integrazione, sia tra le aziende e al loro interno, grazie

al riutilizzo delle strutture dati comuni.

Basso costo del software commerciale: un applicativo che deve

gestire un numero limitato di tag è sicuramente meno costoso di un

altro che deve supportarne un insieme arbitrario.

Minori costi di istruzione del personale, poiché gli utenti devono

apprendere la gestione di una sola libreria: si ottengono così più

utenti meglio istruiti e in minor tempo.

Bassi costi di entrata e quindi appetibilità anche per le piccole e

medie imprese.

Disponibilità per chiunque di un insieme di integratori di sistema.

Strumenti di immissione dati e output standardizzati e quindi meno

costosi.

Da quanto elencato, si capisce che UBL ha come scopo primario quello di

fornire una sintassi comprensibile a tutti i sistemi. Inoltre si prefigge di

operare in aggiunta a dei framework standard per il commercio come –ad

esempio– ebXML, e di divenire quindi un’infrastruttura gratuita e non

coperta da costi di licenza, che estenda i vantaggi dei sistemi EDI esistenti a

tutti i tipi di azienda, dalla grande industria alla piccola ditta. Colmare

quindi la lacuna che hanno lasciato ebXML e i framework simili per quel

che riguarda il payload XML nei messaggi.

5.4 Struttura di UBL

Gli schema di UBL sono modulari, riutilizzabili ed estendibili come ogni

altro schema XML. La libreria di UBL è progettata come

68

un’implementazione del Core Components Technical Specification di

ebXML e si basa su un modello concettuale di componenti

dell’informazione, meglio noti come BIE (Business Information Entities).

Questi componenti sono raggruppati in modelli di documento specifici

come gli ordini e le fatture. Successivamente questi documenti vengono

trasformati in una sintassi di XSD4 schema seguendo l’UBL Naming and

Design Rule (regole di denominazione e di progettazione).

Figura 22 – UBL rispetto allo schema ebXML

5.4.1 Esempio di Schema XSD

Riporto di seguito un esempio di schema XSD utilizzato da UBL.

Nello specifico è lo schema relativo al codice di risposta

(Acknowledgement Response Code); ne esistono altri relativi ad altre

tipologie di definizioni necessarie nello scambio di messaggi in ambito

commerciale come la valuta (Currency Code), allo stato del documento

(Document Status Code), al codice operatore (Operator Code), al codice

identificativo del paese (Country Identification Code) e così via.

4 schema XSD: definizione di documento XML conforme al linguaggio XML XSD1 e XSD2

69

<xsd:schema

targetNamespace="urn:oasis:names:specification:ubl:schema:xsd:Acknowledge

mentResponseCode-1.0" elementFormDefault="qualified"

attributeFormDefault="unqualified" version="1.0">

<xsd:import

namespace="urn:oasis:names:specification:ubl:schema:xsd:CoreComponentPara

meters-1.0" schemaLocation="../common/UBL-CoreComponentParameters-

1.0.xsd"/>

<xsd:simpleType name="AcknowledgementResponseCodeContentType">

<xsd:restriction base="xsd:normalizedString">

<xsd:enumeration value="OrderResponse">

<xsd:annotation>

<xsd:documentation>

<CodeName>UBL OrderResponse document</CodeName>

</xsd:documentation>

</xsd:annotation>

</xsd:enumeration>

<xsd:enumeration value="OrderResponseSimple">

<xsd:annotation>

<xsd:documentation>

<CodeName>UBL OrderResponseSimple document</CodeName>

</xsd:documentation>

</xsd:annotation>

</xsd:enumeration>

</xsd:restriction>

</xsd:simpleType>

<xsd:complexType name="AcknowledgementResponseCodeType">

<xsd:annotation>

<xsd:documentation>

<ccts:Component>

<ccts:ComponentType>DT</ccts:ComponentType>

<ccts:DictionaryEntryName>Acknowledgement Response_ Code.

Type</ccts:DictionaryEntryName>

<ccts:RepresentationTerm>Code</ccts:RepresentationTerm>

<ccts:DataTypeQualifier>Acknowledgement

Response</ccts:DataTypeQualifier>

<ccts:DataType>Code. Type</ccts:DataType>

</ccts:Component>

<ccts:Instance>

<ccts:CodeListID>Acknowledgement Response</ccts:CodeListID>

<ccts:CodeListAgencyID>UBL</ccts:CodeListAgencyID>

<ccts:CodeListAgencyName>OASIS Universal Business

Language</ccts:CodeListAgencyName>

<ccts:CodeListName>Acknowledgement Response</ccts:CodeListName>

70

<ccts:CodeListVersionID>1.0</ccts:CodeListVersionID>

<ccts:CodeListSchemeURI>urn:oasis:names:specification:

ubl:schema:xsd:AcknowledgementResponseCode-1.0</ccts:CodeListSchemeURI>

<ccts:LanguageID>en</ccts:LanguageID>

</ccts:Instance>

</xsd:documentation>

</xsd:annotation>

<xsd:simpleContent>

<xsd:extension base="AcknowledgementResponseCodeContentType">

<xsd:attribute name="codeListID" type="xsd:normalizedString"

fixed="Acknowledgement Response" use="optional"/>

<xsd:attribute name="codeListAgencyID" type="xsd:normalizedString"

fixed="UBL" use="optional"/>

<xsd:attribute name="codeListAgencyName" type="xsd:string" fixed="OASIS

Universal Business Language" use="optional"/>

<xsd:attribute name="codeListName" type="xsd:string"

fixed="Acknowledgement Response" use="optional"/>

<xsd:attribute name="codeListVersionID" type="xsd:normalizedString"

fixed="1.0" use="optional"/>

<xsd:attribute name="name" type="xsd:string" use="optional"/>

<xsd:attribute name="languageID" type="xsd:language" fixed="en"

use="optional"/>

<xsd:attribute name="codeListURI" type="xsd:anyURI" use="optional"/>

<xsd:attribute name="codeListSchemeURI" type="xsd:anyURI"

fixed="urn:oasis:names:specification:ubl:schema:xsd:AcknowledgementRespon

seCode-1.0" use="optional"/>

</xsd:extension>

</xsd:simpleContent>

</xsd:complexType>

</xsd:schema>

Non entreremo nel dettaglio del codice sopraccitato, poiché è solo un

esempio per comprenderne la natura basata su XML e namespace.

71

Figura 23 – Frammento di schema UBL

5.5 Il ciclo ordine-fattura

I documenti e le librerie che soddisfano la versione UBL 1.0 sono stati

progettati per supportare un tipico ciclo di fornitura che parte da un ordine e

termina con una fattura.

Si potrebbero schematizzare i vari passi di tale processo in questo modo,

come riportato da [MeS04]:

Order

Order Response Simple

Order Response Detailed

Order Change

Order Cancellation

Despatch Advice

Receipt Advice

Invoice

72

Graficamente, quelli appena citati, sono elementi collocabili al centro di un

fitto intreccio di casistiche possibili del percorso ordine-fattura.

Figura 24 - Schematizzazione del percorso ordine-fattura

73

6 CONFRONTO TRA GLI STANDARD

Un confronto tra gli standard visti nei capitoli precedenti risulta alquanto

complesso, soprattutto perché alcuni di essi vengono utilizzati all’interno di

altri.

Non sono collocabili, infatti, tutti allo stesso livello dell’ipotetico modello

ISO/OSI5, o meglio, non sono tutti prodotti di identica funzionalità.

La struttura del messaggio di SOAP per esempio viene utilizzata da ebXML

e da UBL per la trasmissione dei messaggi. UBL stesso necessita di un

substrato solitamente ricoperto da ebXML. Dire quindi che SOAP è più

utilizzato di ebXML o che UBL necessita di meno infrastrutture rispetto a

SOAP non è corretto.

Quello che si può fare è ottenere uno sguardo di insieme relativo ai suddetti

standard nel panorama del B2B, cercando di dare loro una collocazione

approssimativa e di capirne potenzialità e svantaggi.

6.1 Il dualismo tra i colossi e gli altri

Come in molti alti campi dell’informatica, quello che si delinea anche

nell’ambito del B2B è un dualismo tra i prodotti Microsoft e le proposte

degli altri produttori. Forte del fatto che metà dei sistemi di computer

esistenti si basano su sistemi operativi Windows, la Microsoft ha potuto

sviluppare un prodotto che sfrutti a pieno le caratteristiche del sistema

operativo e dell’ambiente da esso gestito.

Quando, nel capitolo 3, si è trattato il progetto Biztalk, si è affermato che tra

tutti i vantaggi portati dal sistema ai processi di commercio elettronico,

5 Il modello ISO/OSI (International Standards Organization/Open System Interconnection) è il

punto di partenza per descrivere i livelli, in una rete, per la comunicazione tra computer. I sette

livelli che compongono il modello, dal più basso al più alto, sono: Physical, Data Link, Networks,

Transport, Session, Presentation e Application.

l’integrazione svolge il ruolo fondamentale. Questo grazie proprio al fatto

che Microsoft può affidarsi ad un ambiente interamente proprio.

Il livello SOAP/webservice, per esempio, viene implementato in vari modi:

la maggior parte delle grosse ditte produttrici di software, hanno la propria

implementazione del suddetto protocollo, sviluppato nel linguaggio e

nell’ambiente preferito.

Di strumenti (o toolkit) per la gestione del webservice ne sono stati prodotti

diversi; di seguito ne elenco alcuni dei più noti:

JAVA Apache SOAP

IBM Webservice Toolkit

SUN Microsystems Webservice Development Pack

HP Core Services Framework

Microsoft .NET Framework

Quello che distingue Microsoft dai concorrenti è la grande varietà di

prodotti che offre a livello applicazione, e tutti –come già sottolineato più

volte– integrati tra loro.

Probabilmente da un punto di vista operativo Biztalk non è il miglior

sistema per il commercio B2B, ma riduce al minimo il lavoro di

personalizzazione/cambiamento degli applicativi necessari, visto che molti

di essi sono già stati predisposti a priori per tale scopo e un’eventuale

adattatore avrebbe la certezza assoluta dell’ambiente in cui andrebbe a

operare.

6.2 Confronto fra livelli

Come non è possibile fare sempre coincidere i livelli del modello teorico

ISO/OSI per la comunicazione in una rete con i livelli effettivamente

implementati in un sistema reale, si incontrano difficoltà anche quando si

cerca di fare coincidere i vari livelli occupati dai diversi standard per il

B2B.

Figura 23 – Confronto tra i livelli dei vari modelli trattati

Nella Figura 23 ho cercato di rappresentare una relazione –dove possibile–

tra un sistema Microsoft e un ipotetico altro sistema che utilizzi SOAP,

ebXML e UBL, il tutto paragonato al modello ISO/OSI.

Il risultato è che le relazioni possibili non sono tante, soprattutto per il fatto

che a priori il modello OSI è teorico e spesso nell’implementazione pratica

si vanno ad unificare più livelli sotto un unico componente. I livelli che si

riescono a fare coincidere tra il primo e il secondo modello (senza tenere

conto di quelli inferiori al Transport) sono pertanto solo quelli di trasporto e

di applicazione.

Per quel che riguarda il sistema con BizTalk (discorso valido anche per

ogni altro sistema citato in precedenza che faccia uso di implementazioni

proprie di toolkit per la gestione di SOAP e dei webservice) il problema è

maggiore perché non è possibile rispettare una categorizzazione

Modello ISO/OSI

Application

Presentation

Session

Data Link

Network

Transport

Physical

Application

UBL

ebXML

HTTP/SMTP

SOAP

Sistema standard BizTalk

BT application

.NET

HTTP

SOAP

77

orizzontale: SOAP e il framework di .NET si mescolano infatti in modo

promiscuo.

6.3 Qual è lo standard adatto?

Anche da un punto di vista economico, si presenta una panoramica divisa in

due: da un lato Microsoft e tutti i sistemi proprietari (IBM, SUN, HP) e

dall’altro l’opensource e UBL.

I primi, costosi ma “pronti all’uso”; i secondi nati esclusivamente per essere

gratuitamente distribuiti e personalizzati, ma –appunto– da personalizzare.

Non è un elemento fondamentale la grandezza dell’azienda (la scalabilità

infatti è ormai mantenuta come caratteristica di base), quanto le risorse che

si vogliono investire per adeguare gli eventuali sistemi esistenti. Per

un’azienda che usa da tempo i prodotti Microsoft, compresi i sistemi di

workflow6, sarà immediato passare a BizTalk Server. Per una ditta invece

che per la prima volta si affaccia al mondo del B2B sarà più opportuno

decidere i sistemi da usare in base alle esigenze particolari.

Esiste anche una terza categoria di aziende, che ha utilizzato sistemi

alternativi di B2B ma non globali (non predisposti alla comunicazione con

altri standard simili) e che vuole uniformarsi in previsione di una

espansione di partnership. Questa ditta potrebbe fare affidamento alla vasta

gamma di adattatori offerti da Microsoft BizTalk Server.

6 Workflow (trad. flusso di lavoro) è l’insieme delle politiche aziendali che si traducono in processi

decisionali, di approvazione, di revisione ecc.. ai quali vengono sottoposti i documenti e/o i

prodotti di un settore di lavoro.

78

7 CONCLUSIONI

Il tema trattato in questa tesi mi ha portato a visionare diversi sistemi

considerati standard per il B2B. Partendo dal concetto di commercio

elettronico improntato sulle aziende sia come fornitrici che come fruitici dei

prodotti e dei servizi, ho passato in rassegna alcuni standard: dalle prime

idee di commercio universale, concretizzatesi con UN/EDIFACT fino al

recentissimo UBL, passando attraverso la comprensione dei webservice e di

SOAP (fondamentali mattoni del livello base dell’e-commerce). Un

capitolo è stato dedicato a BizTalk, il prodotto commerciale della Microsoft

per affrontare il B2B, in rappresentanza della categoria di ambienti software

completi.

Al termine del lavoro di ricerca sugli standard del B2B, l’idea che emerge

dalle realtà esistenti, è che i prodotti completi abbiano un impatto più

vantaggioso rispetto a quelli sviluppati a livelli separati.

Sembra che lo sviluppo di sistemi opensource e quello di prodotti

commerciali viaggino a due velocità diverse.

E’ più che ammirevole il tentativo di creare degli standard che possano

essere utilizzati da chiunque senza dover pagare tasse o copyright: il che

favorirebbe la distribuzione del software a tutti i livelli di impiego, ma non

è sufficiente a tale scopo sviluppare e rendere disponibile gratuitamente

solo alcuni singoli strati del diagramma a livelli (mostrato nella Figura 23).

Allo stato attuale non esistono ancora gli strumenti per creare un sistema

totalmente gestito da software freeware, quello che si può fare è integrare le

parti commerciali con parti gratuitamente distribuite.

Un sistema promiscuo però non è sempre realizzabile poiché i sistemi

completi (BizTalk e affini) non forniscono le stesse prestazioni con

l’introduzione o la modifica di substrati nel loro modello a livelli (anche

perché spesso non rispecchia le divisioni canoniche degli altri modelli).

Dagli esempi trattati in questa tesi, solo UBL risulta essere improntato sulla

filosofia della libera distribuzione; esso necessita un sottostrato tipo ebXML

che a sua volta si implementa grazie alla messaggistica di tipo SOAP.

La scelta sembra quasi obbligata, quindi, per chi volesse utilizzare le

librerie UBL; analogamente, alla ditta che ha preferito BizTalk, viene

velatamente consigliato l’utilizzo di prodotti Microsoft (nonostante esistano

i convertitori).

Per una ditta che si appresta a scegliere un sistema per il B2B, la prima

domanda da porsi è se acquistare una soluzione completa oppure se fare

affidamento su diverse implementazioni per i diversi livelli.

Allo stato attuale delle cose, credo che il livello Applicazione faccia la

differenza, e che i pacchetti “completi” da questo punto di vista forniscano

più attrattive.

In un futuro, magari con lo sviluppo di sistemi completi freeware, si potrà

parlare di concorrenza tra le due tipologie, per ora non ce ne sono i

presupposti.

L’unica certezza è che lo sviluppo dell’e-commerce e conseguentemente del

B2B (e B2C) è in forte espansione. Paradossalmente per una ditta è più

importante avere un sito internet efficiente che una prestigiosa sede legale.

La visibilità offerta dal web non ha paragoni, e chi non ha imboccato questa

strada entro qualche anno sarà tagliato fuori. Stiamo andando verso un

nuovo tipo di commercio, non tanto per le metodologie quanto per i canali

adottati. Chi saprà sfruttare i giusti canali vincerà la corsa all’e-commerce.

80

RIFERIMENTI

Fonti in rete

[Bre04] Kathryn Breininger, “Defining and managing

interoperable registries and repositories”, 2004,

http://www.oasis-open.org/committees/tc_home.php?

wg_abbrev=regrep, 20 febbraio 2005.

[Cra03] M. Crawford, “Toward a Universal Business Language”,

2003,

“http://www.oasis-open.org/committees/download.php/46

10/xml2003.pdf”, 5 marzo 2005.

[DAT04] “Webservice in generale”,2004,

http://www.dataflex.it/it/products/webservicegeneral.htm,

18 febbraio 2005.

[Dau04] Blake Dournee, “Introduction to ebXML”, 2004,

http://dev2dev.bea.com/technologies/webservices/articles/

ebXML.jsp, 12 febbraio 2005.

[EBXM04] Centro Europeo di Informazione su ebXML, “OASIS /

UBL - Universal Business Language Technical

Committee”, 2003, http://www.ebxml.eu.org/It/UBL.htm,

24 febbraio 2005.

[Fer01] F. Ferracchiati, “BizTalk: la nuova soluzione per il B2B”,

2001,

http://online.infomedia.it/riviste/login/28/articolo19/articol

o.htm, 2 febbraio 2005.

[Lon04] F. Longo, “il Dizionario informatico”, 2004,

http://www.dizionarioinformatico.com/cgi-lib/diz.cgi?

frame&key=webservice, 31 dicembre 2004.

[Mer01] David Mertz, “Untangling the business Web of the

future”, 2001,

http://www-106.ibm.com/developerworks/xml/library/x-

ebxml/, 16 gennaio 2005.

[MeS04] B. Meadows - L. Seaburg, “Oasis Universal Business

Language 1.0”, 2004, http://docs.oasis-open.org/ubl/cd-

UBL-1.0/, 5 marzo 2005.

[MIC04a] Microsoft, “Microsoft BizTalk Server: product overview”,

2005,

http://www.microsoft.com/biztalk/evaluation/overview/biz

talkserver.asp, 2 febbraio 2005.

[MIC04b] Microsoft, “Microsoft BizTalk Server” 2004,

http://www.microsoft.com/italy/technet/prodtechnol/biztal

k/default.mspx, 2 febbraio 2005.

[Sig03] O. Signore, “Integrare informazioni e applicazioni nel

KMS con i web service”, 2003,

http://www.w3c.it/papers/km2003rm.pdf, 31 dicembre

2004.

[Sko02] Aaron Skonnard, “XML files – The birth of Web

Services”, 2002,

82

http://msdn.microsoft.com/webservices/understanding/we

bservicebasics/default.aspx?pull=/msdnmag/issues/

02/10/xmlfiles/default.aspx, 5 gennaio 2005.

[UNE90] United Nations Economic Commission for Europe,

“UN/EDIFACT draft directory”, 2000,

http://www.unece.org/trade/untdid/texts/d100_d.htm, 26

febbraio 2005.

[W3C00] A.A.V.V., “Simple Object Access Protocol (SOAP) 1.1” ,

2000,

http://www.w3c.org/tr/soap/, 31 dicembre 2004.

[WIN99] WindowsITPro, “Microsoft BizTalk Initiative”, 1999,

http://www.windowsitpro.com/Windows/Article/ArticleID

/5907/5907.html, 3 febbraio 2005.

Altre risorse in rete

XML http://www.xml.org/

SOAP http://www.w3.org/TR/soap/

OASIS http://www.oasis-open.org/home/index.php

ebXML http://www.ebxml.org/

Biztalk http://www.microsoft.com/biztalk/

UN/EDIFACT http://www.unece.org/trade/untdid/welcome.htm

UBL http://www.unece.org/trade/untdid/welcome.htm

83

Fonti Bibliografiche

[Cau01] P. Cauldwell - R.Chawla - V. Chopra et altri,

“Professional XML Web Services” , 2001, Wrox.

[Ste90] W. Stevens, “Unix Network Programming”, 1990,

Prentice Hall Software Series.

84