Diapositiva 1 - Dipartimento di Informatica e Sistemistica

Corso di Laurea: INGEGNERIA
Insegnamento:
AUTOMAZIONE II
Docente:
PROF: ALESSANDRO DE CARLI
DR. VINCENZO SURACI
Facoltà di Ingegneria
AUTOMAZIONE II
MES
ARCHITETTURA SOFTWARE
SERVICE-ORIENTED
Redazione a cura dell'Ing. Letterio Zuccaro ([email protected])
SAPIENZA - Università di Roma – Dipartimento di Ingegneria Informatica Automatica e Gestionale Antonio Ruberti (DIS)
Via Ariosto 25 - 00185 Roma – http://www.dis.uniroma1.it
Corso di Laurea: INGEGNERIA
Insegnamento:
AUTOMAZIONE II
Docente:
PROF: ALESSANDRO DE CARLI
DR. VINCENZO SURACI
Facoltà di Ingegneria
STRUTTURA DEL NUCLEO TEMATICO
• ARCHITETTURA SOFTWARE
• ENTERPRISE SERVICE ARCHITECTURE (ESA)
• WEB SERVICES
SAPIENZA - Università di Roma – Dipartimento di Ingegneria Informatica Automatica e Gestionale Antonio Ruberti (DIS)
Via Ariosto 25 - 00185 Roma – http://www.dis.uniroma1.it
Corso di Laurea: INGEGNERIA
Insegnamento:
AUTOMAZIONE II
Docente:
PROF: ALESSANDRO DE CARLI
DR. VINCENZO SURACI
Facoltà di Ingegneria
MES
Architettura Software
SAPIENZA - Università di Roma – Dipartimento di Ingegneria Informatica Automatica e Gestionale Antonio Ruberti (DIS)
Via Ariosto 25 - 00185 Roma – http://www.dis.uniroma1.it
Corso di Laurea: INGEGNERIA
Insegnamento:
AUTOMAZIONE II
Docente:
PROF: ALESSANDRO DE CARLI
DR. VINCENZO SURACI
Facoltà di Ingegneria
Requisiti
Il software che caratterizza un MES deve rispondere ai seguenti requisiti:
- Mapping completo di tutte le funzioni richieste dal sistema ERP al quale è
interfacciato per garantire integrazione orizzontale
- Disponibile come software con le seguenti proprietà
- Struttura modulare
- Estendibilità secondo le esigenze dell’utente seguendo standard attuali
- Moduli adattabili non solo ai processi ma anche ai requisiti dell’utente
- Supporto di interfacce standard tra i livelli
SAPIENZA - Università di Roma – Dipartimento di Ingegneria Informatica Automatica e Gestionale Antonio Ruberti (DIS)
Via Ariosto 25 - 00185 Roma – http://www.dis.uniroma1.it
Corso di Laurea: INGEGNERIA
Insegnamento:
AUTOMAZIONE II
Docente:
PROF: ALESSANDRO DE CARLI
DR. VINCENZO SURACI
Facoltà di Ingegneria
Architettura: approccio Application-centered
L’applicazione controlla sia le operazioni sul database (accesso, inserimento,
cancellazione) che la logica applicativa (business logic) del sistema. Il database agisce
solo come supporto di memorizzazione dei dati.
PRO
• Sviluppo mediante linguaggi ad alto livello (Java or .Net)
• Aggiornamenti semplici per la struttura poco complessa dei dati
CONTRO
• Errori nell’applicazione possono compromettere la consistenza dei dati
• Funzioni tipiche di un DBMS, come consistenza dei dati in cache e gestione delle
transazioni, devono essere integrate attraverso un uso massicio di multithreading
• Sistemi con elevati volumi di dati ne risentono in termini di performances
SAPIENZA - Università di Roma – Dipartimento di Ingegneria Informatica Automatica e Gestionale Antonio Ruberti (DIS)
Via Ariosto 25 - 00185 Roma – http://www.dis.uniroma1.it
Corso di Laurea: INGEGNERIA
Insegnamento:
AUTOMAZIONE II
Docente:
PROF: ALESSANDRO DE CARLI
DR. VINCENZO SURACI
Facoltà di Ingegneria
Architettura: approccio Database-centered
Il database non è utilizzato solo per memorizzare i dati, ma costituisce il punto cardine
dell’intero sistema. Gran parte della logica applicativa è gestita attraverso di esso.
Tutte le operazioni relative ai dati sono gestite attraverso il DBMS in un linguaggio di
programmazione nativo (SQL) sotto forma di stored procedures.
PRO
• Transazioni e consistenza dei dati a carico del DBMS.
• Il data model è definito dall’applicazione favorendo un accesso più semplice da parte
di sistemi esterni
• Garantisce migliori performances per sistemi che si devono confrontare con un
elevato volume di transazioni
CONTRO
• Complessità
SAPIENZA - Università di Roma – Dipartimento di Ingegneria Informatica Automatica e Gestionale Antonio Ruberti (DIS)
Via Ariosto 25 - 00185 Roma – http://www.dis.uniroma1.it
Corso di Laurea: INGEGNERIA
Insegnamento:
AUTOMAZIONE II
Docente:
PROF: ALESSANDRO DE CARLI
DR. VINCENZO SURACI
Facoltà di Ingegneria
MES: sistemi Database-centered
 Database, cuore del sistema
•Online database per interrogazioni
realtime
•Archive database per memorizzazioni a
lungo termine
 Funzioni base, come elaborazione e
organizzazione di dati complessi in
tabelle, sono implementate nel
database
 Funzioni più elaborate, come
business logic e compiti amministrativi
(autenticazione utenti, gestione
presenze) sono gestite mediante
un’entità esterna (application server)
 Application server necessario anche
per l'interfaccia utente (Web server, per
soluzioni MES Web-based)
 Adapters e servizi (software) sono necessari per l’interfacciamento con altri sistemi (ERP, SCADA...)
SAPIENZA - Università di Roma – Dipartimento di Ingegneria Informatica Automatica e Gestionale Antonio Ruberti (DIS)
Via Ariosto 25 - 00185 Roma – http://www.dis.uniroma1.it
Corso di Laurea: INGEGNERIA
Insegnamento:
AUTOMAZIONE II
Docente:
PROF: ALESSANDRO DE CARLI
DR. VINCENZO SURACI
Facoltà di Ingegneria
MES
Enterprise Service Architecture
(ESA)
SAPIENZA - Università di Roma – Dipartimento di Ingegneria Informatica Automatica e Gestionale Antonio Ruberti (DIS)
Via Ariosto 25 - 00185 Roma – http://www.dis.uniroma1.it
Corso di Laurea: INGEGNERIA
Insegnamento:
AUTOMAZIONE II
Docente:
PROF: ALESSANDRO DE CARLI
DR. VINCENZO SURACI
Facoltà di Ingegneria
Enterprise Service Architecture
I moderni sistemi MES sono orientati alla
cosiddetta "business service architecture" o
“enterprise service architecture” (ESA).
Tale architettura si struttura in livelli
Una ragione importante per la scelta di questa
architettura è che durante il ciclo di vita di un
sistema MES possono nascere nuove esigenze
che devono essere attuate in un processo
continuo, virtualmente senza fine.
Interface 3
User Interface 3
Interface 2
User Interface 2
Interface 1
User Interface 1
Process mapping
Business objects and methods
Data layer
Il MES deve essere pronto ai cambiamenti!
Basic functions
SAPIENZA - Università di Roma – Dipartimento di Ingegneria Informatica Automatica e Gestionale Antonio Ruberti (DIS)
Via Ariosto 25 - 00185 Roma – http://www.dis.uniroma1.it
Corso di Laurea: INGEGNERIA
Insegnamento:
AUTOMAZIONE II
Docente:
PROF: ALESSANDRO DE CARLI
DR. VINCENZO SURACI
Facoltà di Ingegneria
Vantaggi ESA
La piena integrazione
orizzontale è realistica
e i costi molto più
bassi
I processi possono
essere mappati sotto
forma di flussi di
lavoro workflow grafici
fornendo chiarezza,
trasparenza e sicurezza
E‘ molto più semplice
modificare le sequenze
del processo rispetto
alle soluzioni classiche,
anche in fasi
successive.
Monolithic
Introduzione nuova funzionalità comporta modifiche a componenti esistenti
Alterazioni al sistema
ESA
Nuova funzionalità utilizza oggetti e metodi già presenti
Non intacca il sistema
SAPIENZA - Università di Roma – Dipartimento di Ingegneria Informatica Automatica e Gestionale Antonio Ruberti (DIS)
Via Ariosto 25 - 00185 Roma – http://www.dis.uniroma1.it
Corso di Laurea: INGEGNERIA
Insegnamento:
AUTOMAZIONE II
Docente:
PROF: ALESSANDRO DE CARLI
DR. VINCENZO SURACI
Facoltà di Ingegneria
Funzioni base
Funzioni software indipendenti dalla specifica funzionalità ma che
concorrono alla realizzazione della stessa.
Garantiscono separazione tra l’applicazione MES e le componenti
tecnologiche alla base di ogni sistema IT.
Database indipendence. Supporto di diversi DBMS (Oracle,
Microsoft SQL Server, IBM databases).
Interface 3
User Interface 3
Interface 2
User Interface 2
Interface 1
User Interface 1
Platform indipendence. Sistemi Microsoft Windows, Linux e
derivati.
Process mapping
Business objects and methods
Forniscono:
- Servizi di comunicazione (TCP/IP, Bus)
Data layer
Basic functions
- Moduli per funzioni tipiche di un MES (visualizzazione
diagrammi, acquisizione, storage e verifica dei dati)
- Partizionamento del database per accessi realtime (OLTP) e disponibilità a lungo termine dei dati.
- Supporto alle interfacce (Web services, OPC, Excel export or XML export...)
- Funzioni di logging, monitoring e tracing (ad es. per rilevare faults)
SAPIENZA - Università di Roma – Dipartimento di Ingegneria Informatica Automatica e Gestionale Antonio Ruberti (DIS)
Via Ariosto 25 - 00185 Roma – http://www.dis.uniroma1.it
Corso di Laurea: INGEGNERIA
Insegnamento:
AUTOMAZIONE II
Docente:
PROF: ALESSANDRO DE CARLI
DR. VINCENZO SURACI
Facoltà di Ingegneria
Data layer
Responsabile della definizione della struttura del database
(tabelle e campi) e dei dati (data model) in esso
immagazzinati.
Ogni funzionalità del MES (gestione materiali, risorse
umane, gestione qualità...) è descritta tramite un data
model e i dati associati sono acceduti mediante SQL
Interface 3
User Interface 3
Interface 2
User Interface 2
Interface 1
User Interface 1
Process mapping
Business objects and methods
Tutti i cambiamenti, modifiche e ampliamenti delle
funzionalità che richiedono la persistenza dei dati
interessano questo livello.
SAPIENZA - Università di Roma – Dipartimento di Ingegneria Informatica Automatica e Gestionale Antonio Ruberti (DIS)
Via Ariosto 25 - 00185 Roma – http://www.dis.uniroma1.it
Data layer
Basic functions
Corso di Laurea: INGEGNERIA
Insegnamento:
AUTOMAZIONE II
Docente:
PROF: ALESSANDRO DE CARLI
DR. VINCENZO SURACI
Facoltà di Ingegneria
Application layer: business objects and methods
Il livello di applicazione definisce gli oggetti e i metodi ad essi associati,
permettendo al livello di process mapping di sviluppare la logica
applicativa del sistema.
Oggetti:
"Macchina 3523 con gli attributi associati“
"Operazione 7330022 010 con gli attributi associati “
Metodi:
Funzioni che permetto di accedere e modificare gli attributi dell’oggetto
(get/set)
Funzioni che attivano azioni sull'oggetto, come ad esempio associare
personale ad una macchina.
Interface 3
User Interface 3
Interface 2
User Interface 2
Interface 1
User Interface 1
Process mapping
Business objects and methods
Indipendenza dal data model
Cambiamenti alle strutture di dati sottostanti non alterano oggetti e
metodi già esistenti, fino a quando non viene eseguita una opportuna
integrazione
L’introduzione di nuove funzionalità implica la definizione di nuovi oggetti
e metodi
SAPIENZA - Università di Roma – Dipartimento di Ingegneria Informatica Automatica e Gestionale Antonio Ruberti (DIS)
Via Ariosto 25 - 00185 Roma – http://www.dis.uniroma1.it
Data layer
Basic functions
Corso di Laurea: INGEGNERIA
Insegnamento:
AUTOMAZIONE II
Docente:
PROF: ALESSANDRO DE CARLI
DR. VINCENZO SURACI
Facoltà di Ingegneria
Process mapping
• Riproduce la logica applicativa sulla base degli oggetti e
metodi dell’application layer
• Attraverso opportune interfacce riceve messaggi contenenti i
dati che vengono trattati tipicamente mediante condizioni “ifthen” facendo uso degli oggetti e metodi dell’application layer.
Interface 3
User Interface 3
Interface 2
User Interface 2
Interface 1
User Interface 1
Process mapping
• Le condizioni “if-then” possono essere espresse graficamente
mediante workflows di facile lettura e comprensione.
Business objects and methods
• Capacità di combinare oggetti associati a funzionalità diverse
al fine di offrire servizi specifici.
Basic functions
SAPIENZA - Università di Roma – Dipartimento di Ingegneria Informatica Automatica e Gestionale Antonio Ruberti (DIS)
Via Ariosto 25 - 00185 Roma – http://www.dis.uniroma1.it
Data layer
Corso di Laurea: INGEGNERIA
Insegnamento:
AUTOMAZIONE II
Docente:
PROF: ALESSANDRO DE CARLI
DR. VINCENZO SURACI
Facoltà di Ingegneria
Interfacce utente
Caratteristica fondamentale dei MES che abilita l’interazione col sistema
Applicazioni:
- Controllo della produzione
o Impostazione parametri di controllo
- Configurazione dell’interfaccia
o Scelta layout grafico mediante fogli di stile (logo, colori,
fonts)
- Presentazione dei dati raccolti
o Definizione campi da visualizzare, ordinamento tabelle, etc.
Interface 3
User Interface 3
Interface 2
User Interface 2
Interface 1
User Interface 1
Process mapping
Business objects and methods
Data layer
Basic functions
Tecnologie:
- “Rich” client
Software client MES installato su ogni macchina PC (e.s. Remote Desktop: terminale server
acceduto da client remoto)
Necessario se richiesta “intelligenza” per operazioni complesse lato client
- “Thin” client
Nessun software specifico richiesto (accesso via Web browser)
Ideale per monitoraggio e visualizzazione informazioni
SAPIENZA - Università di Roma – Dipartimento di Ingegneria Informatica Automatica e Gestionale Antonio Ruberti (DIS)
Via Ariosto 25 - 00185 Roma – http://www.dis.uniroma1.it
Corso di Laurea: INGEGNERIA
Insegnamento:
AUTOMAZIONE II
Docente:
PROF: ALESSANDRO DE CARLI
DR. VINCENZO SURACI
Facoltà di Ingegneria
Interfacce utente Web-based
- AJAX (asynchronous JavaScript and XML)
Combina i vantaggi di una soluzione Web leggera (nessuna applet o
altri oggetti che devono essere caricati) con l'agilità di un rich client
Solo i dati modificati vengono scambiati tra il client e il server, e solo gli
elementi modificati nelle viste (pagine Web) sono aggiornati.
Sono disponibili librerie (JQuery, Mootools) basate su questa tecnologia
che contengono componenti intelligenti (ad esempio, casella di
riepilogo con funzione multipla, casella di input con
autocompletamento)
Interface 3
User Interface 3
Interface 2
User Interface 2
Interface 1
User Interface 1
Process mapping
Business objects and methods
Con l'aiuto di AJAX, è anche possibile realizzare grafici. Tuttavia,
formati grafici text-base sono più adatti a questo scopo (SVG –
Scalable Vector Graphics)
- Adobe Flash
La tecnologia più usata per il web interattivo
Il formato (SWF) si basa su immagini vettoriali
Offre un ottimo supporto a contenuti multimediali, adatto per
animazioni e messaggi pubblicitari
SAPIENZA - Università di Roma – Dipartimento di Ingegneria Informatica Automatica e Gestionale Antonio Ruberti (DIS)
Via Ariosto 25 - 00185 Roma – http://www.dis.uniroma1.it
Data layer
Basic functions
Corso di Laurea: INGEGNERIA
Insegnamento:
AUTOMAZIONE II
Docente:
PROF: ALESSANDRO DE CARLI
DR. VINCENZO SURACI
Facoltà di Ingegneria
Interfacce
Le interfacce identificano i dispositivi di comunicazione che utilizzano
diverse tecnologie per lo scambio dei dati.
Necessaria una standardizzazione delle interfacce
Interface 3
User Interface 3
Interface 2
User Interface 2
Interface 1
User Interface 1
I MES automatizzano i processi dei sistemi ERP traducendo i dati
tecnici in ambiente MES in informazioni adatte per questo tipo di
sistemi
Process mapping
Business objects and methods
I MES sono direttamente connessi al processo di produzione
(controllori macchine, sistemi a bus, lettori RFID) rendendo
possibile una migliore automatizzazione dello stesso
I MES si stanno affermando come piattaforma di integrazione tra
isole già esistenti (come sistemi di gestione ordini, controllo
qualità, distribuzione prodotti, tracciabilità dei materiali) che
possono essere sfruttare come collettori di dati per il MES
SAPIENZA - Università di Roma – Dipartimento di Ingegneria Informatica Automatica e Gestionale Antonio Ruberti (DIS)
Via Ariosto 25 - 00185 Roma – http://www.dis.uniroma1.it
Data layer
Basic functions
Corso di Laurea: INGEGNERIA
Insegnamento:
AUTOMAZIONE II
Docente:
PROF: ALESSANDRO DE CARLI
DR. VINCENZO SURACI
Facoltà di Ingegneria
Interfacce con la produzione
I dati più importanti che un sistema MES scambia con l’impianto di
produzione (macchinari, gruppi di macchine, linee di produzione)
riguardano
programmi di lavorazione, setpoints, istruzioni
cicli macchina, contatori, segnali operativi, stato macchine,
misurazioni e dati di processo.
Obiettivi
Raggiungere un elevato livello di automazione per aumentare
l'efficienza economica e ridurre la frequenza di malfunzionamenti
Ottenere una determinata qualità non solo del prodotto finito ma del
processo di produzione stesso
Interface 3
User Interface 3
Interface 2
User Interface 2
Interface 1
User Interface 1
Process mapping
Business objects and methods
Data layer
Basic functions
Tecnologie
- Proprietarie
Fino a qualche anno fa, per mancanza di norme, ogni costruttore di macchine sviluppava
protocolli/interfacce proprietari rendendo costoso e complicato l’interfacciamento
- OPC (OLE for Process Control)
Interfaccia Windows-based per lo scambio di informazioni tra due sistemi
Hardware indipendence
Semplice da configurare
Supporto al networking
Accesso parallelo ai dati forniti dal server OPC
SAPIENZA - Università di Roma – Dipartimento di Ingegneria Informatica Automatica e Gestionale Antonio Ruberti (DIS)
Via Ariosto 25 - 00185 Roma – http://www.dis.uniroma1.it
Corso di Laurea: INGEGNERIA
Insegnamento:
AUTOMAZIONE II
Docente:
PROF: ALESSANDRO DE CARLI
DR. VINCENZO SURACI
Facoltà di Ingegneria
Interfacce con i sistemi ad alto livello (ERP)
Metodologie
RPC (Remote Procedure Call)
I dati vengono scambiati invocando una procedura presente su un
sistema remoto.
Paradigma client/server
Si distinguono chiamate sincrone (client ferma l’esecuzione in attesa
dell’output della procedura remota) e asincrone.
SAP (software gestionale) ha sviluppato un sistema proprietario di RPC
(RFC - Remote Function Call), rendendo disponibili librerie software per
l’interfacciamento lato MES.
Interface 3
User Interface 3
Interface 2
User Interface 2
Interface 1
User Interface 1
Process mapping
Business objects and methods
Database-to-database
Il MES recupera i dati richiesti accedendo direttamente al database del
sistema ERP, e viceversa
Problemi:
Nessuna standardizzazione
Nessuna garanzia di protezione da accessi non autorizzati
Soluzioni:
Creazione di viste (raccolta di dati) ad-hoc accessibili previa autenticazione
SAPIENZA - Università di Roma – Dipartimento di Ingegneria Informatica Automatica e Gestionale Antonio Ruberti (DIS)
Via Ariosto 25 - 00185 Roma – http://www.dis.uniroma1.it
Data layer
Basic functions
Corso di Laurea: INGEGNERIA
Insegnamento:
AUTOMAZIONE II
Docente:
PROF: ALESSANDRO DE CARLI
DR. VINCENZO SURACI
Facoltà di Ingegneria
Interfacce con i sistemi ad alto livello (ERP)
Metodologie
File-based
Un file viene scritto e letto da una cartella condivisa tra ERP e MES
Il file è strutturato seguendo standards quali CSV o XML
Dopo che il destinatario ha letto il file, questo viene eliminato o
rinominato. Tale evento abilita una successiva trasmissione.
Un esempio di questo metodo molto semplice di comunicazione
riguarda la trasmissione degli ordini di produzione dal sistema ERP al
MES.
Gli svantaggi della soluzione generalmente sono identici ai problemi di
interfaccia al database descritti in precedenza.
Interface 3
User Interface 3
Interface 2
User Interface 2
Interface 1
User Interface 1
Process mapping
Business objects and methods
Data layer
Basic functions
Web services
Utilizzando un Web service, un MES (nel ruolo di client) può trasmettere, ad esempio, una risposta
relativa ad un ordine di produzione richiesto dal sistema ERP (come server)
Proprietà principali:
Standardizzazione
Scambio di dati sulla rete Internet
Indipendenza dalla piattaforma
Funzionalità on-line
Soddisfano tutti i requisiti necessari per una comunicazione service-oriented
SAPIENZA - Università di Roma – Dipartimento di Ingegneria Informatica Automatica e Gestionale Antonio Ruberti (DIS)
Via Ariosto 25 - 00185 Roma – http://www.dis.uniroma1.it
Facilità di espandibilità
Corso di Laurea: INGEGNERIA
Insegnamento:
AUTOMAZIONE II
Docente:
PROF: ALESSANDRO DE CARLI
DR. VINCENZO SURACI
Facoltà di Ingegneria
MES
Web Services
SAPIENZA - Università di Roma – Dipartimento di Ingegneria Informatica Automatica e Gestionale Antonio Ruberti (DIS)
Via Ariosto 25 - 00185 Roma – http://www.dis.uniroma1.it
Corso di Laurea: INGEGNERIA
Insegnamento:
AUTOMAZIONE II
Docente:
PROF: ALESSANDRO DE CARLI
DR. VINCENZO SURACI
Facoltà di Ingegneria
Motivazioni
Uno dei problemi principali nell’industria è quello di integrare applicazioni informatiche
sviluppate in maniera indipendente:
Gran numero di tecnologie eterogenee esistenti
Proliferazione di applicazioni distribuite
La cosiddetta integrazione applicativa può essere considerata a diversi livelli:
All’interno della stessa azienda
Tra partner dell’azienda
Tra l’azienda ed utenti generici
L’integrazione è necessaria quando un processo coinvolge diversi sistemi informatici
Sfruttare Internet come piattaforma globale di integrazione è un’opportunità notevole,
soprattutto per l’integrazione tra diverse aziende
SAPIENZA - Università di Roma – Dipartimento di Ingegneria Informatica Automatica e Gestionale Antonio Ruberti (DIS)
Via Ariosto 25 - 00185 Roma – http://www.dis.uniroma1.it
Corso di Laurea: INGEGNERIA
Insegnamento:
AUTOMAZIONE II
Docente:
PROF: ALESSANDRO DE CARLI
DR. VINCENZO SURACI
Facoltà di Ingegneria
Service-Oriented-Architecture
L'idea di base di una Service-Oriented Architecture (SOA) è quella di organizzare i
processi business in servizi.
Il client richiede un servizio per un'attività specifica (ossia, prenota il servizio).
L’ordine viene processato da un server e il risultato (risposta dal server) viene reinviato al
client.
La struttura del servizio (ossia la struttura di dati per richieste e risposte) è mantenuta in
un repository globale
Un indirizzo univoco identifica ogni servizio erogato dal server
I Web Services costituiscono un’applicazione di Service-Oriented-Architecure su
piattaforma Web
SAPIENZA - Università di Roma – Dipartimento di Ingegneria Informatica Automatica e Gestionale Antonio Ruberti (DIS)
Via Ariosto 25 - 00185 Roma – http://www.dis.uniroma1.it
Corso di Laurea: INGEGNERIA
Insegnamento:
AUTOMAZIONE II
Docente:
PROF: ALESSANDRO DE CARLI
DR. VINCENZO SURACI
Facoltà di Ingegneria
Three-Tier vs SOA
3-tier:
SOA:
SAPIENZA - Università di Roma – Dipartimento di Ingegneria Informatica Automatica e Gestionale Antonio Ruberti (DIS)
Via Ariosto 25 - 00185 Roma – http://www.dis.uniroma1.it
Corso di Laurea: INGEGNERIA
Insegnamento:
AUTOMAZIONE II
Docente:
PROF: ALESSANDRO DE CARLI
DR. VINCENZO SURACI
Facoltà di Ingegneria
Web Services
Definizione del W3C (World Wide Web Consortium):
"Un Web service è un'interfaccia che descrive una collezione di operazioni,
accessibili attraverso una rete mediante messaggistica XML".
I Web Services rappresentano una tecnica di Remote Procedure Call (RPC) con
codifica dati basata su XML
Caratteristiche
– Interoperabilità: un WS può essere invocato da un client situato in una piattaforma tecnologica
diversa da quella su cui è eseguito il servizio
– Incapsulamento: gli utilizzatori di un WS sono ignari dei dettagli dell’implementazione, conoscono
solo l’interfaccia
– Accessibilità: un WS può essere reso pubblicamente disponibile per l’utilizzo
A cosa servono i WS?
• Garantire a sistemi di natura differente pieno accesso a tipologie di dati eterogenei.
• Quando due entità si mettono d'accordo per scambiarsi una serie di informazioni e per astrarre il
procedimento, si affidano ad un sistema in grado di garantire una soluzione duratura
SAPIENZA - Università di Roma – Dipartimento di Ingegneria Informatica Automatica e Gestionale Antonio Ruberti (DIS)
Via Ariosto 25 - 00185 Roma – http://www.dis.uniroma1.it
Corso di Laurea: INGEGNERIA
Insegnamento:
AUTOMAZIONE II
Docente:
PROF: ALESSANDRO DE CARLI
DR. VINCENZO SURACI
Facoltà di Ingegneria
Standards
Gli standard utilizzati per i WS sono tutti dialetti di XML
SOAP (Simple Object Access Protocol): descrive un protocollo basato su XML che
definisce i meccanismi con cui un WS è invocato ed il formato dell’input e dell’output
(richiesta e risposta)
WSDL (Web Service Definition Language): descrive l’interfaccia esterna di un Web
Service affinché uno sviluppatore possa creare un client capace di invocarlo
UDDI (Universal Discovery, Description and Integration): è un registro
contenente informazioni utili per la scoperta e l’accesso ai Web Services
SAPIENZA - Università di Roma – Dipartimento di Ingegneria Informatica Automatica e Gestionale Antonio Ruberti (DIS)
Via Ariosto 25 - 00185 Roma – http://www.dis.uniroma1.it
Corso di Laurea: INGEGNERIA
Insegnamento:
AUTOMAZIONE II
Docente:
PROF: ALESSANDRO DE CARLI
DR. VINCENZO SURACI
Facoltà di Ingegneria
Attori
•
•
•
Service Provider rende disponibile il servizio e pubblica il contratto che ne
descrive l’interfaccia
Service Requester effettua le queries al Service Broker che questo cerca il
servizio compatibile.
Service Broker da info al Requester su quale servizio utilizzare e dove trovarlo
Steps:
1. Il Service Provider realizza il WS e lo
pubblica in un registro UDDI gestito
dal Service Broker
2. Il Service Requester ricerca il WS nel
registro UDDI del Broker
3. Il Service Requester recupera
dall’UDDI il documento WSDL che
definisce l’interfaccia del servizio
4. Il Service Requester invoca il servizio
e riceve la risposta
Se i servizi sono usati solo localmente o in connessioni con sistemi “vicini”, come
solitamente avviene nel caso dei MES, il Service Broker può essere omesso
SAPIENZA - Università di Roma – Dipartimento di Ingegneria Informatica Automatica e Gestionale Antonio Ruberti (DIS)
Via Ariosto 25 - 00185 Roma – http://www.dis.uniroma1.it
Corso di Laurea: INGEGNERIA
Insegnamento:
AUTOMAZIONE II
Docente:
PROF: ALESSANDRO DE CARLI
DR. VINCENZO SURACI
Facoltà di Ingegneria
Benefici nell’utilizzo dei Web Services
Loose Coupling (accoppiamento indipendente)
Ciascun servizio esiste indipendentemente dagli altri servizi che costituiscono l’applicazione. Questo
permette alle singole parti di un’applicazione di essere modificate senza toccare le aree non
interessate
Utilizza architetture orientate ai servizi
I processi business che costituiscono un’applicazione sono separati in componenti indipendenti detti
servizi. Questi servizi, interagendo con processi e macchine, riescono a creare una soluzione per i
business problem. Le architetture SOA garantiscono una grande flessibilità perché è possibile
modificare dinamicamente una parte di esse senza ridefinire l’intero sistema.
Facilita l’integrazione
L’integrazione tra business partners o ambienti diversi è garantita dall’utilizzo di formati standard per
lo scambio dei messaggi. Tali standard sono, inoltre, comprensibili all’uomo e disponibili
pubblicamente, e permetteno ad uno sviluppatore di vedere esattamente cosa sta accadendo nel
sistema.
Facilmente accessibile
WS utilizzano il protocollo di trasporto già esistente e notevolmente utilizzato come HTTP, facendo
leva su infrastrutture esistenti e permettendo alle info di essere richieste e ricevute in tempo reale.
SAPIENZA - Università di Roma – Dipartimento di Ingegneria Informatica Automatica e Gestionale Antonio Ruberti (DIS)
Via Ariosto 25 - 00185 Roma – http://www.dis.uniroma1.it
Corso di Laurea: INGEGNERIA
Insegnamento:
AUTOMAZIONE II
Docente:
PROF: ALESSANDRO DE CARLI
DR. VINCENZO SURACI
Facoltà di Ingegneria
MES e Web Services
Esempi applicativi
Le interfacce di collegamento tra terminali che eseguono l’acquisizione di dati macchina
(MDA) o di dati di produzione (PDA) ed un server possono essere implementate in modo
semplice e flessibile con i Web services.
La distribuzione di informazioni sulle ore di lavoro del personale al MES da parte di un
sistema di cronometraggio. Utilizzando tali dati, il MES è in grado di verificare le risorse
umane effettivamente presenti. Il sistema di cronometraggio del personale costituisce il
server, il MES il client seguendo il modello dei Web services
SAPIENZA - Università di Roma – Dipartimento di Ingegneria Informatica Automatica e Gestionale Antonio Ruberti (DIS)
Via Ariosto 25 - 00185 Roma – http://www.dis.uniroma1.it
Corso di Laurea: INGEGNERIA
Insegnamento:
AUTOMAZIONE II
Docente:
PROF: ALESSANDRO DE CARLI
DR. VINCENZO SURACI
Facoltà di Ingegneria
Web vs Web Services
Web:
Un browser
richiede una
pagina Web
tramite HTTP
Web Service:
Un client (es. un
programma Java)
invoca un Web
Service tramite
SOAP ed HTTP
SAPIENZA - Università di Roma – Dipartimento di Ingegneria Informatica Automatica e Gestionale Antonio Ruberti (DIS)
Via Ariosto 25 - 00185 Roma – http://www.dis.uniroma1.it
Corso di Laurea: INGEGNERIA
Insegnamento:
AUTOMAZIONE II
Docente:
PROF: ALESSANDRO DE CARLI
DR. VINCENZO SURACI
Facoltà di Ingegneria
Esempio Codice Fiscale
HTTP Request
GET
/codicefiscale.asmx/CalcolaCodiceFiscale?Nome=Mario&Cognome=Rossi&ComuneNascita=Roma&DataNascita=09/
05/2012&Sesso=M HTTP/1.1
Host: webservices.dotnethell.it
POST /codicefiscale.asmx/CalcolaCodiceFiscale HTTP/1.1
Host: webservices.dotnethell.it
Content-Type: application/x-www-form-urlencoded
Content-Length: length
Nome=Mario&Cognome=Rossi&ComuneNascita=Roma&DataNascita=09/05/2012&Sesso=M
HTTP Response
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: 78
<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://webservices.dotnethell.it/CodiceFiscale">RSSMRA12E09H501G</string>
SAPIENZA - Università di Roma – Dipartimento di Ingegneria Informatica Automatica e Gestionale Antonio Ruberti (DIS)
Via Ariosto 25 - 00185 Roma – http://www.dis.uniroma1.it
Corso di Laurea: INGEGNERIA
Insegnamento:
AUTOMAZIONE II
Docente:
PROF: ALESSANDRO DE CARLI
DR. VINCENZO SURACI
Facoltà di Ingegneria
Esempio Codice Fiscale
SOAP Request
POST /codicefiscale.asmx HTTP/1.1
Host: webservices.dotnethell.it
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
<soap12:Body>
<CalcolaCodiceFiscale xmlns="http://webservices.dotnethell.it/CodiceFiscale">
<Nome>Mario</Nome>
<Cognome>Rossi</Cognome>
<ComuneNascita>Roma</ComuneNascita>
<DataNascita>09/05/2012</DataNascita>
<Sesso>M</Sesso>
</CalcolaCodiceFiscale>
</soap12:Body>
</soap12:Envelope>
SAPIENZA - Università di Roma – Dipartimento di Ingegneria Informatica Automatica e Gestionale Antonio Ruberti (DIS)
Via Ariosto 25 - 00185 Roma – http://www.dis.uniroma1.it
Corso di Laurea: INGEGNERIA
Insegnamento:
AUTOMAZIONE II
Docente:
PROF: ALESSANDRO DE CARLI
DR. VINCENZO SURACI
Facoltà di Ingegneria
Esempio Codice Fiscale
SOAP Response
HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: 78
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
<soap12:Body>
<CalcolaCodiceFiscaleResponse xmlns="http://webservices.dotnethell.it/CodiceFiscale">
<CalcolaCodiceFiscaleResult>RSSMRA12E09H501G</CalcolaCodiceFiscaleResult>
</CalcolaCodiceFiscaleResponse>
</soap12:Body>
</soap12:Envelope>
SAPIENZA - Università di Roma – Dipartimento di Ingegneria Informatica Automatica e Gestionale Antonio Ruberti (DIS)
Via Ariosto 25 - 00185 Roma – http://www.dis.uniroma1.it
Corso di Laurea: INGEGNERIA
Insegnamento:
AUTOMAZIONE II
Docente:
PROF: ALESSANDRO DE CARLI
DR. VINCENZO SURACI
Facoltà di Ingegneria
Riferimenti
Jürgen Kletti,
Manufacturing Execution System – MES
Springer, 2010
Capitoli: 5
SAPIENZA - Università di Roma – Dipartimento di Ingegneria Informatica Automatica e Gestionale Antonio Ruberti (DIS)
Via Ariosto 25 - 00185 Roma – http://www.dis.uniroma1.it