Open Source all-in-one management software

Corso di Sistemi Informativi

Prof. Vincenzo Moscato

Alessandro Recano

AA 2017-2018

Riferimenti

Sistemi ERP

I sistemi ERP (Enterprise Resource Planning) sono sistemi software che permettono di governare informaticamente i processi di business di un'impresa. Essi realizzano 3 concetti fondamentali del sistema informativo aziendale:

  • Unicità dell'informazione (unica Base Dati)
  • Estensione e modularità funzionale
  • Prescrittività (ovvero la normazione dei processi gestionali fissata nel modello funzionale incorporato nel software)

Paradigma ERP

Sistemi ERP

Esempio  - prescrittività

  • L'attività di ricevimento delle materie prime (o di un prodotto in generale se si parla di un'azienda che distribuisce prodotti) ha come input l'ordine della merce (materie prime o articoli ready-to-sell) al fornitore. Tale ordine specifica la quantità da ricevere e viene memorizzato nella base dati.
  • Una volta ricevuta la merce, il sistema ERP produce una stampa che ne certifichi la ricezione.
  • Condizione necessaria per eseguire la registrazione è quindi la presenza dell'ordine a fornitore nel sistema (l'elaborazione della "ricevuta" di carico confronta infatti i dati dell'ordine con quelli del DDT/fattura della merce, ove vengono indicati i dati del fornitore e le quantità ordinate)
  • prescrizione: la merce che entra in azienda dev'essere stata ordinata

Sistemi ERP

Sistemi ERP

Caratteristiche

  • Supporto alla catena del valore dell'impresa (Porter)
    • attività primarie di produzione e vendita di beni e servizi (es. logistica interna, marketing, customer care, ecc)
    • attività di supporto (gestione amministrativa e contabile, risorse umane, approvvigionamenti, ecc)
  • Composti essenzialmente da 3 livelli:
    1. Livello suite: Collezione di applicazioni software a supporto di un insieme di processi gestionali
    2. Livello modulo: un modulo è un'applicazione software che supporta un processo gestionale composto di funzioni
    3. Livello funzione: supporta un'attività elementare di un processo gestionale. Corrisponde ad uno o più casi d'uso. Attivato dall'utente del sistema.

Sistemi ERP

Caratteristiche

  • core-settoriale: se rappresenta la verticalizzazione delle applicazioni in ogni singolo settore industriale e i processi primari di un'impresa
    • es. ordini al fornitore, pianificazione materiali, ecc.

Un modulo di un ERP può essere:

  • core-intersettoriale: invariante rispetto al settore. Tali moduli informatizzano i processi a supporto dell'impresa:
    • es. sito web, risorse umane, gestione amministrativa, ecc.
  • core-extended: tali moduli curano l'interazione B2B/B2C tra l'impresa e soggetti esterni (ad es. altre imprese o clienti)
    • es. CRM, Business Intelligence, Supply chain management, ecc.

Gartner's Magic Quadrant

Sistemi ERP

ODOO è un sistema ERP open source, distribuito in due versioni:

  • community: permette di installare, modificare e distribuire gratuitamente i moduli di cui si compone in accordo ai termini di licenza GNU LGPL 
  • enterprise: disponibile sia come SaaS sia come installazione su server locale.

ODOO nasce nel 2005 con il nome TinyERP. Diventa poi OpenERP e dal 2014 ODOO.

Il progetto è attualmente alla versione 11 ed è caricato e documentato interamente su GitHub, dal quale è pubblicata anche la documentazione ufficiale sul sito web.

 

Nel 2013 nasce la OCA (ODOO community association) , comunità che promuove lo sviluppo e l'utilizzo del prodotto in tutto il mondo.

 

In Italia, nel 2011, si è formata la Associazione ODOO Italia, con lo scopo di promuovere iniziative e creare un canale di riferimento per gli sviluppatori e gli utenti italiani.

Ad oggi ODOO vanta più di 2 milioni di utenti e più di 7.000 apps.

 

Un caso d'uso interessante è quello di Toyota (link), che ha eseguito il mapping di alcuni dei propri processi di business nella suite ODOO. In particolare, l'impresa ha reingegnerizzato i processi di:

  • Gestione del Magazzino (approvvigionamenti, stock, ecc)
  • Vendite
  • Gartner's Magic Quadrant vs ODOO's Magic Quadrant
  • Integrato: tutti i moduli applicativi della suite confluiscono in un'unica base dati.
  • Modulare: La prima installazione fornisce i moduli base della suite (gestione dei clienti, fornitori, magazzino, ecc) ma è possibile installare altri package da repository ufficiali o di terze parti.
  • Incorpora le best practices per l'implementazione dei principali processi di business aziendali

Punti di forza

L'architettura di ODOO è di tipo 3-tier:

Architettura

Architettura

Presentation tier

Application tier

Data tier

Data Tier

I dati elaborati da ODOO sono ospitati in PostgreSQL: un DBMS open source ad oggetti (ORDBMS) concorrente dei famosi MySql, Oracle, ecc.

 

PostgreSQL utilizza il linguaggio SQL per la manipolazione dei dati.

 

Punto di forza: programmabilità

La logica applicativa di ODOO è realizzata attraverso un application server ed che ospita i moduli installabili nella suite.

Tale livello è composto da:

  • ORM (object relational mapping): rappresenta l'entità che governa la comunicazione con il database. Il modello dei dati viene descritto in Python ed ODOO sfrutta ORM per la creazione delle tabelle e dei dati descritti dai modelli. ORM garantisce inoltre:
    • sicurezza a livello di tupla
    • consistenza dei dati (attraverso validity checks)
  • Webserver: offre un'interfaccia per la comunicazione con i più diffusi client web quali browser. Gestisce classiche richieste http ai fini di servire file statici o contenuti dinamici attraverso standard JSON-RPC / XML-RPC

 

 

 

 

Application Tier

Applicazione Javascript eseguita nel browser dell'utente

  • Inoltra richieste al server (attraverso Remote Procedure Calls)
  • Attende che la richiesta sia elaborata dall'application server
  • L'output è fornito come forms, liste, calendari, UI elements, ecc.

Presentation Tier

Tale livello è realizzato sfruttando il pattern architetturale MVC (model-view-controller). Esso consente di separare la logica di business dalla logica di presentazione (attraverso l'utilizzo di viste ed interfacce).

In ODOO queste tre entità sono rappresentate da:

  • Model: database PostrgreSQL - classi Python
  • View: definite in files XML 
  • Controller: moduli (apps)

Presentation Tier

Nel modello MVC realizzato in ODOO:

  • View to Model: il modello invia una notifica alla vista quando ha terminato l'elaborazione dei dati. In tal modo la vista può aggiornarsi e "ridisegnare" il suo contenuto.

Il modello non deve conoscere il funzionamento della vista ma al contrario, la vista deve aver accesso completo al modello per la lettura dei dati.

  • View to Controller: la vista ha un accesso limitato al controller per rendere più efficiente la sostituzione di quest'ultimo. Sostituendo il controller, viste e modelli possono essere facilmente riusati.

Presentation Tier

ODOO è progettato per interfacciarsi all'utente attraverso un webserver.

Un generico client può comunicare con esso in due diversi modi (oltre che con i suoi moduli):

  • XML-RPC: definizione del modello in XML e utilizzo del paradigma RPC (remote procedure call) per l'esecuzione di server-routines (implementazione della routine su server e nascosta al client).
  • JSON-RPC: utilizzato dai web-client; dati scambiati in maniera indipendente dal linguaggio di programmazione in array di chiave-valore.

Sono inoltre disponibili delle API per utilizzare i webservices messi a disposizione dal software (link)

API-Communication

1. Dove trovarlo

ODOO è distribuito come:

  • Demo online (link)
  • SaaS (solo versione enterprise)
  • Pacchetto di installazione tradizionale 
  • Source install: utile per sviluppatori, disponibile mediante fork da GitHub
  • immagine docker

2. Costi

2. Costi

2. Costi

3. Installazione e configurazione iniziale

Alla pagina di download, basta compilare il form per il download della versione desiderata, scegliendo la piattaforma di destinazione.

Ai fini dell'esempio è stato scelto di installare il software in ambiente Windows

3. Installazione e configurazione iniziale

4. Primo avvio

Al primo avvio il software ci chiede di creare un nuovo database, configurando l'utenza master dello stesso

ODOO Server viene installato come servizio. Il file di configurazione, nel caso di installazione Win, risiede nella directory :

%PROGRAMFILES%\Odoo 9.0-id\server\odoo.conf

Se necessario modificare il file di configurazione, bisogna poi riavviare il servizio nell'utility services.msc

4. Primo avvio

Esempio: installazione dell'app Inventory Management

Per installare un'app tra quelle disponibili (per caricare un'app di terze parti bisogna caricare il pacchetto sul server) basta scegliere quella di interesse ed eseguire l'installazione. Sarà il sistema ad occuparsi di eventuali dipendenze da installare per il pacchetto scelto.

Il modulo Inventory & Warehouse Management consente di gestire i prodotti venduti ed acquistati dall'azienda, pianificare ed eseguire un inventario del magazzino e definire regole di ordino

(per prevenire stock out)

Esempio: installazione dell'app Inventory Management

Esempio: Creazione di un prodotto e approvvigionamento iniziale

Esempio: Creazione di un prodotto e approvvigionamento iniziale

Made with Slides.com