In questo articolo vedremo com installare Sme.UP Provider in versione Web Application e le differenze rispetto alla versione Stand Alone.

Introduzione

Con la release Roma Rev-2 è stata creata una versione di Sme.UP Provider che può essere installata in un application server (tipicamente payara).

Questa versione di Sme.UP Provider è la base dello Smartkit.

Avremo pertanto tre versioni:

  • Sme.UP Provider Stand Alone o Provider SA: si tratta della versione “storica”, quella che funziona solo in ambiente Windows
  • Sme.UP Provider Web Application o Provider WA: è la versione funzionante all’interno di un application server, quindi indipendente dal sistema operativo
  • Smartkit:  è la versione Provider WA distribuita in un container Docker o in una macchina virtuale.

In questo articolo ci occuperemo del Provider WA, installato su un server Linux.

Per la versione Smartkit fare riferimento al blog.

 

Prerequisiti

Requisiti minimi software

  • Java JDK1.8 a 64bit.
    La versione a 32 bit può usare al massimo 4 Gb di RAM, pertanto può essere utilizzata solamente in ambito di test o con pochissime connessioni (meno di 5). In un ambiente di produzione la mancanza di memoria porta a crash dell’applicazione.
    E’ possibile effettuare un’installazione standalone della jvm nel caso non si voglia utilizzare la jvm di sistema.
    Per effettuare questa operazione si rimanda al documento WEBASE_012
  • Application Server Payara 5.183 (http://www.payara.fish/)

Requisiti minimi server

  • Windows Server 2012 / Ubuntu Server 16.04 LTS
  • CPU Quad core
  • 4GB RAM
  • 60GB HDD

Le risorse di cui sopra variano in funzione all’utilizzo del server, quindi è consigliabile virtualizzare per usufruire dei vantagggi della scalabilità.

N.B: Per ovvie ragioni, se si opta per l’opzione Windows, è fortemente sconsigliato l’utilizzo di un os che non sia una release “server”.

 

la procedura di installazione

L’installazione del Provider WA è analoga al deploy di qualsiasi web application: sarà sufficiente scaricare il war dalla pagina di downlod del sito SmeUP, aprire la console di payara e deployare l’applicazione.

La prima volta che viene eseguito il deploy di un provider verrà creata una struttura di cartelle in /home/_utente_/etc/provider/.

Con il primo deploy avremo pertanto /home/_nome_utente_/etc/provider/smeup-provider.

Se andremo a deployare anche un’applicazione smeup-provider-test avremo la cartella /home/_nome_utente_/etc/provider/smeup-provider-test.

Avremo pertanto tante cartelle quanti sono i provider che andremo a deployare.

Se vorremo ad esempio avere versioni differenti deployeremo provider con nomi differenti, ad esempio:

  • /home/payara/etc/provider/smeup-provider questa sarà la versione di produzione e risponderà a http://localhost:8080/smeup-provider*
  • /home/payara/etc/provider/smeup-provider-test questa sarà la versione di test e risponderà a http://localhost:8080/smeup-provider-test*
  • ….

*NOTA: per interrogare la pagina di debug aggiungere /debug

 

Interrogare il Provider WA

Una volta deployato, si potrà interrogare la pagina di debug all’indirizzo  http://localhost:_porta_payara_/_nome_applicazione_/debug ad esempio  http://localhost:8080/smeup-provider/debug.

Se è la prima volta che il providewr viene deployato, la pagina di debug mostrerà gli errori che ha riscontrato, ovvero che manca, l’AS400, l’utente, la password, il nome della coda e l’ambiente.

Configurare il Provider WA

La configurazione dovrà essere fatta con il file configuration.properties.

Ogni provider ha un suo file di properties che si trova nella cartella /home/_nome_utente_/etc/provider/_nome_applicazione_, ad esempio in /home/payara/etc/provider/smeup-provider.

 

————————— INIZIO ESEMPIO SCRIPT DI CONFIGURAZIONE —————————

user=UTENTE

password=PASSWORD

server=INDIRIZZO

serverQName=CODICE-PROVIDER

# se metto env viene creata una connessione completa

# senza env solo la coda server--> necessario specificare XML iniziale

env=AMBIENTE (commentare la riga nel caso di provider che si deve collegare ad un sistema non Sme.UP ERP)

#env=

dblogtype=remote

logdblib=SMEUP_DAT




# mapping path

# queste variabili informano il provider sulla corrispondenza 

# tra il percorso Windows e quello dove viene montato in Linux

# esempio 

# MAPPING_PATH_01=WIN(\\\\server01.xyz.com\\azienda01\\share1) LIN(/mnt/payara/server01-share1)

# sono predisposte 9 copie, 

# se non bastassero se ne possono aggiungere quante ne servono:

# il provider leggerà tutte le chiavi che iniziano con MAPPING_PATH_

# ogni chiave deve essere univoca

MAPPING_PATH_01=WIN() LIN()

MAPPING_PATH_02=WIN() LIN()

MAPPING_PATH_03=WIN() LIN()

MAPPING_PATH_04=WIN() LIN()

MAPPING_PATH_05=WIN() LIN()

MAPPING_PATH_06=WIN() LIN()

MAPPING_PATH_07=WIN() LIN()

MAPPING_PATH_08=WIN() LIN()

MAPPING_PATH_09=WIN() LIN()

#utilizzo come XML iniziale quello di default si trova in LOOCUP_SET/SPR/XML/default.xml

#xmlini=eventuale override del percorso xml di inizializzazione (per provider senza Sme.UP)

loocupEncCode=U8 

logLevel=debug

logComunication=YES

#di default è in appdata\Loocup log se in Windows - altrimenti è in home/

logPath=

#numero di rolling mantenuti

logRollingFileNum=

#Dimensione in megabyte del singolo file di rolling es 10MB

logRollingFileSize=

#numero età max dei file di log  

logMaxAgeDays=

debugMode= 

#rootFolder=Percorso alla cartella che il provider deve considerare root

rootFolder=

# non va eseguito il ping: non ho connessione verso SmeUp

pingPeriod=100

#pingPeriod=-1

cleanDBPeriod=8h

—————————- FINE ESEMPIO SCRIPT DI CONFIGURAZIONE —————————-

Scenari di configurazione

Per quanto riguarda i dati di configurazione obbligatori (quelli in grassetto nel file di configurazione sopra riportato), gli scenari possibili sono due:

  • Configurazione per collegarsi ad un server con Sme.UP ERP
    • user= utente server applicativo
    • password= password utente
    • server= indirizzo server applicativo
    • serverQName= codice provider
    • env= codice ambiente
    • xmlini commentato
  • Configurazione per collegarsi ad un server senza Sme.UP ERP
    • user= utente server applicativo
    • password= password utente
    • server= indirizzo server applicativo
    • serverQName= codice provider
    • env commentato
    • xmlini= DEFAULT

 

Configurare l’accesso a file su server Windows: autofs

Se siamo in uno scenario dove il provider deve fornire anche  immagini e/o file a Web.UP o a Looc.UP, ed è installato su un server non Windows, allora è necessario effettuare una configurazione specifica.

Supponiamo che sia deployato in un server Linux, Ubuntu e che debba accedere a file che sono sul server SRV001 e debba accedere alle  cartelle Azienda1, Azienda2 e Comuni.

Su SRV001, avremo anche le cartelle Commerciali e Utenti e a queste il provider WA non dovrà accedere.

Per accedere alle condivisioni di rete non utilizzertemo direttamente il mount, ma ci appoggeremo a autofs:  è un servizio che consente di montare all’occorenza una condivisione di rete o di controllare quando un server windows torna disponibile.

Per prima cosa, andremo ad installare sul server linux  autofs.

Dovremo poi definire le condivisioni di rete da montare: si dovrà modificare il file auto.master. Vanno commentate le due istruzioni presenti (+dir:/etc/auto.master.d e +dir:/etc/auto.master.d) ed aggiunta /mnt/payara /etc/auto.mnt.

Questa istruzione dice a autofs di montare quanto indicato in auto.mnt sotto la cartella /mnt/payara.

Vediamo il contenuto di auto.mnt:

srv001-azienda1 -fstype=cifs,file_mode=0777,dir_mode=0777,username=ute_win,password=pwd_ute_win,domain=azienda.com,nocase ://srv001.azienda.com/Azienda1
srv001-azienda2 -fstype=cifs,file_mode=0777,dir_mode=0777,username=ute_win,password=pwd_ute_win,domain=azienda.com,nocase ://srv001.azienda.com/Azienda2
srv001-comuni -fstype=cifs,file_mode=0777,dir_mode=0777,username=ute_win,password=pwd_ute_win,domain=azienda.com,nocase ://srv001.azienda.com/Comuni
as400-smedoc -fstype=cifs,file_mode=0777,dir_mode=0777,username=ute_AS400,password=pwd_ute_AS400,domain=azienda.com,nocase ://AS400.azienda.com/smedoc

Alcune note:

  • Abbiamo ipotizzato che l’utente Linux del provider sia payara
  • E’ stata creata manualmente la cartella payara in /mnt
  • per i dettagli consultare ad esempio https://help.ubuntu.com/community/Autofs

Configurare l’accesso a file su server Windows: mapping path

Una volta che si è complatata la configurazione di autofs, è necessario informare il provider su come dovrà trattare i percorsi: i percorsi sono definiti su AS400 in formato windows, ad esempio la variabile AZI.HOM per l’azienda 1 sarà \\SRV001\Azienda1,  \\SRV001\Azienda2 per la due e così via.

Il provider WA  è in grado di gestire questi percorsi solamente se è installato su un server Windows, ma se è installato su un server Linux, si dovrà definire una mappa che gli consenta di capire dove reperire un percorso che comincia, ad esempio, con \\SRV001\Azienda1.

Per definire la mappa posso utilizzare il file di configurazione configuration.properties, utilizzando le proprietà MAPPING_PATH_…

Il provider utilizzerà tutte le proprietà che iniziano con MAPPING_PATH_, pertanto se ne potrenno usare quante se ne vuole, l’unica accortezza è che vengano mantenute con una chiave univoca.

Per ognuna di queste proprietà va definita una coppia WIN(percorso windows) LIN(percorso linux), ad esempio, per mappare \\SRV001\Azienda1 su /mnt/payara/srv001-azienda1 andremo a compilare il mapping path in questo modo:

MAPPING_PATH_01=WIN(\\SRV001\Azienda1) LIN(/mnt/payara/srv001-azienda1)

e così via per tutti gli altri.

Il provider, quando riceverà un percorso che inzia con \\SRV001\Azienda1, lo sostituirà con  /mnt/payara/srv001-azienda1, aggiungerà il resto del percorso e individuerà il file.

L’operazione di mapping, definisce anche quali sono i percorsi a cui il provider può accedere, allo stesso modo della variabile PROVIDER_PATHS.

 

differenze rispetto a provider stand alone

La versione SA può funzionare solamente su un server Windows, mentre la versione WA ha come prerequisito l’utilizzo di un application server, pertanto può funzionare su Windows, Linux, AS400 o qualunque sistema in grado di far funzionare la JVM versione 8 o successiva.

La versione WA è priva delle parti SmeTray e SmeuiClt, pertanto non potrà eseguire le fun che richiedodo l’utilizzo di componenti grafici implementati da questi moduli, ad esempio l’esportazione dei fogli Excel.

La versione WA non può essere utilizzata per eseguire flussi.

La versione WA può funzionare a 64 bit, quindi non ha il limite dei 1024Mb di memoria max che ha il Provider SA.

I log di provider SA si trovano in %appdata%\Loocup\LOG, mentre i log della versione WA si trovano nella home dell’utente in ./Loocup/LOG.