340 likes | 485 Views
AUTOMAZIONE II. MES ARCHITETTURA SOFTWARE SERVICE-ORIENTED. Redazione a cura dell'Ing. Letterio Zuccaro ( zuccaro@dis.uniroma1.it ). STRUTTURA DEL NUCLEO TEMATICO. ARCHITETTURA SOFTWARE ENTERPRISE SERVICE ARCHITECTURE (ESA) WEB SERVICES. MES Architettura Software. Requisiti.
E N D
AUTOMAZIONE II MES ARCHITETTURA SOFTWARE SERVICE-ORIENTED Redazione a cura dell'Ing. Letterio Zuccaro (zuccaro@dis.uniroma1.it)
STRUTTURA DEL NUCLEO TEMATICO ARCHITETTURA SOFTWARE ENTERPRISE SERVICE ARCHITECTURE (ESA) WEB SERVICES
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
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
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à
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...)
Enterprise Service Architecture User Interface 3 Interface 3 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. Il MES deve essere pronto ai cambiamenti! User Interface 2 Interface 2 User Interface 1 Interface 1 Process mapping Business objects and methods Data layer Basic functions
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
Funzioni base User Interface 3 Interface 3 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). Platform indipendence. Sistemi Microsoft Windows, Linux e derivati. Forniscono: - Servizi di comunicazione (TCP/IP, Bus) - Moduli per funzioni tipiche di un MES (visualizzazione diagrammi, acquisizione, storage e verifica dei dati) User Interface 2 Interface 2 User Interface 1 Interface 1 Process mapping Business objects and methods Data layer Basic functions - 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)
Data layer User Interface 3 Interface 3 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 Tutti i cambiamenti, modifiche e ampliamenti delle funzionalità che richiedono la persistenza dei dati interessano questo livello. User Interface 2 Interface 2 User Interface 1 Interface 1 Process mapping Business objects and methods Data layer Basic functions
Application layer: business objects and methods User Interface 3 Interface 3 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. 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 User Interface 2 Interface 2 User Interface 1 Interface 1 Process mapping Business objects and methods Data layer Basic functions
Process mapping User Interface 3 Interface 3 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 “if-then” facendo uso degli oggetti e metodi dell’application layer. Le condizioni “if-then” possono essere espresse graficamente mediante workflows di facile lettura e comprensione. Capacità di combinare oggetti associati a funzionalità diverse al fine di offrire servizi specifici. User Interface 2 Interface 2 User Interface 1 Interface 1 Process mapping Business objects and methods Data layer Basic functions
Interfacce utente User Interface 3 Interface 3 Caratteristica fondamentale dei MES che abilita l’interazione col sistema Applicazioni: Controllo della produzione • Impostazione parametri di controllo Configurazione dell’interfaccia • Scelta layout grafico mediante fogli di stile (logo, colori, fonts) Presentazione dei dati raccolti • Definizione campi da visualizzare, ordinamento tabelle, etc. User Interface 2 Interface 2 User Interface 1 Interface 1 Process mapping Business objects and methods 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 Data layer Basic functions
Interfacce utente Web-based User Interface 3 Interface 3 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) 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 User Interface 2 Interface 2 User Interface 1 Interface 1 Process mapping Business objects and methods Data layer Basic functions
Interfacce User Interface 3 Interface 3 Le interfacce identificano i dispositivi di comunicazione che utilizzano diverse tecnologie per lo scambio dei dati. Necessaria una standardizzazione delle interfacce I MES automatizzano i processi dei sistemi ERP traducendo i dati tecnici in ambiente MES in informazioni adatte per questo tipo di sistemi 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 User Interface 2 Interface 2 User Interface 1 Interface 1 Process mapping Business objects and methods Data layer Basic functions
Interfacce con la produzione User Interface 3 Interface 3 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 User Interface 2 Interface 2 User Interface 1 Interface 1 Process mapping Business objects and methods • 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 Supporto al networking • Semplice da configurare Accesso parallelo ai dati forniti dal server OPC Data layer Basic functions
Interfacce con i sistemi ad alto livello (ERP) User Interface 3 Interface 3 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. Database-to-database Il MES recupera i dati richiesti accedendo direttamente al database del sistema ERP, e viceversa User Interface 2 Interface 2 User Interface 1 Interface 1 Process mapping Business objects and methods Data layer Problemi: Nessuna standardizzazione Nessuna garanzia di protezione da accessi non autorizzati Soluzioni: Creazione di viste (raccolta di dati) ad-hoc accessibili previa autenticazione Basic functions
Interfacce con i sistemi ad alto livello (ERP) User Interface 3 Interface 3 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. User Interface 2 Interface 2 User Interface 1 Interface 1 Process mapping Business objects and methods Data layer 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 Facilità di espandibilità Soddisfano tutti i requisiti necessari per una comunicazione service-oriented Basic functions
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
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
Three-Tier vs SOA 3-tier: SOA:
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
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
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: Il Service Provider realizza il WS e lo pubblica in un registro UDDI gestito dal Service Broker Il Service Requester ricerca il WS nel registro UDDI del Broker Il Service Requester recupera dall’UDDI il documento WSDL che definisce l’interfaccia del servizio 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
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.
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
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
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>
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>
Esempio Codice Fiscale 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> SOAP Response
Riferimenti Jürgen Kletti, Manufacturing Execution System – MES Springer, 2010 Capitoli: 5