FORMAZIONE TECNICA SISTEMISTICA APPLICATIVA · Con il termine heap si fa riferimento a quella zona...
Transcript of FORMAZIONE TECNICA SISTEMISTICA APPLICATIVA · Con il termine heap si fa riferimento a quella zona...
Il software che crea successo
FORMAZIONE TECNICASISTEMISTICA APPLICATIVA
Corso di certificazione base
Prima giornata
• Introduzione alle tecnologie
• Requisiti HW/SW applicazioni HR/AGO
• Database: installazione e manutenzione SQL Server
• JVM: reperimento, tecnologia e installazione su Windows
• Tomcat: reperimento, tecnologia a installazione su Windows
• Analisi ed utilizzo Tomcat Manager e log di Tomcat
• JDBC Driver e configurazione DBConfig
• Installazione e configurazione MIPHR/PagheW
• Parametrizzazioni applicative: DMS, Percorsi, HR Abilitazioni, Live Update, Gadget aggiornamenti, Licenza applicativa
• Introduzione ai Web Server: installazione e configurazione Microsoft IIS
2
Seconda giornata
• Database: installazione e manutenzione PostgreSQL
• JVM: reperimento, tecnologia e installazione su Linux
• Tomcat: reperimento, tecnologia a installazione su Linux
• JDBC Driver e configurazione DBConfig
• Installazione e configurazione MIPHR/AGO
• Parametrizzazioni applicative: DMS, Percorsi, HR Abilitazioni, Live Update, Gadget aggiornamenti, Licenza applicativa
• Introduzione ai Web Server: installazione e configurazione Apache HTTPD
3
4
Introduzione alle tecnologie
CLIENT SIDE SERVER SIDE
BROWSER
MS Internet Explorer
Google Chrome
Mozilla Firefox
WEB SERVER
MS IIS
Apache HTTPD
SERVLET CONTAINER
Apache Tomcat
DATABASE
MS SQL Server
PostgreSQL
Oracle
WEBAPPS
5
Introduzione alle tecnologie
CLIENT SIDE SERVER SIDE
DATABASE
JDBCMSSQL 1433
POSTGRES 5432ORACLE 1521
SERVLET CONTAINER
AJP 8009WEB SERVER
HTTP 80HTTPS 443BROWSER
6
Requisiti HW/SW per HR/AGO
7
Requisiti HW/SW per HR/AGO
8
Database – Installazione e configurazione MS SQL
Server 2016
Attenzione: MS SQL Server (qualsiasi versione) va installato nella stessa lingua del sistemaoperativo.
Scaricare il download al seguente link:
https://www.microsoft.com/it-IT/download/details.aspx?id=54284
Scaricare MS SQL Server Management Studio per la gestione del DB:
https://docs.microsoft.com/it-it/sql/ssms/download-sql-server-management-studio-ssms
Per i riferimenti dettagliati di installazione consultare il link:https://corso.zucchettilab.it/index.html
9
Alcune operazioni potranno richiedere il riavvio di Windows invece nel caso di avvisi è possibile proseguire con l’installazione.
10
• Selezionare: Servizi motore di database
• Scegliere la Directory radice istanza
• Assegnare il nome dell’istanza desiderata
11
• Per i DB Microsoft l’encoding standard è Latin1_General_CI_AS.
• Motore di Database di SQL Server
->Tipo di avvio AUTOMATICO
• SQL Server Browser-> Tipo di avvio
DISABILITATO
12
• Aggiungi utente corrente: permette in aggiunta l’accesso come amministratore dell’istanza all’utente di Windows che ha installato il servizio
• Selezionare Modalità mista scegliendo una password per l’ accesso dell’utente sa
13
• Installare il tool SQL Management Studio per la gestione dell’istanza installata
14
• Eseguire lo strumento StrumentoGestione Configurazione SQL Server ed abilitare il protocollo TCP/IP indicando la porta in ascolto del servizio per gli IP in uso (default 1433) impostando la stessa come statica e non dinamica
15
• Accedere ad MS SQL Management Studio e creare un nuovo database(Es. MIPZUCCHETTI)
16
• Impostare per il file di data (mdf) l’opzione di crescita con incremento di 512MB, mentre per il file di log un incremento di 256MB
17
• Applica Criteri Password: E’ possibile lasciarla attiva ma impostare una password complessa ed alfanumerica
• Tipo di Autenticazione: SQL Server
18
• Eseguire sul DB creato una nuova query che cambierà il ruolo di DBOwner per l’utente SQL creato: sp_changedbowner ‘zucchetti’
19
Eseguire la query:
alter database NOMEDB set read_committed_snapshot on with rollback immediate;
per abilitare l’isolamento dello snapshot
20
JAVA – Cenni e storia
• All’inizio degli anni ‘80 la diminuzione del prezzo dell’hardware e l’aumento delle performance avevaaperto la strada alla diffusione di Internet e al suo utilizzo come mezzo per la distribuzione diapplicazioni.
• La complessità dei linguaggi di programmazione allora presenti (ad esempio il C) convinse la SunMicrosystem, in collaborazione con Netscape Corporation, a creare un linguaggio di programmazioneadatto alla nuova generazione di applicazioni allora in progettazione, nacque così Oak, da cui, l’anno dopoderivò Java
21
JAVA – Caratteristiche
Java nasce con l’intento di creare un linguaggio Object Oriented che permettesse di gestire quelli che allora si ritenevano i due problemi più rilevanti :
• Creare un linguaggio ad oggetti più semplice da programmare del C++
• Permettere la creazione di programmi slegati da una architettura precisa
22
JAVA – Caratteristiche
• Il primo degli obbiettivi fu raggiunto liberando il programmatore dall’onere della gestione dellamemoria (e togliendo dalle sue mani la gestione dei puntatori) creando un linguaggio destinatoalla grande diffusione basato su un sistema di gestione della memoria chiamato GargbageCollector in cui automaticamente la memoria viene assegnata e rilasciata a seconda delleesigenze del programma.
• Il secondo punto fu invece risolto applicando il concetto di Macchina Virtuale (JVM) e facendosostanzialmente in modo che i programmi siano compilati in una sorta di codice “intermedio”(chiamato bytecode) che non è destinato ad essere eseguito direttamente dall’hardware ma chedeve essere, a sua volta, interpretato da un secondo programma, la macchina virtuale appunto.Questo significa che lo stesso codice può essere eseguito su più piattaforme semplicementetrasferendo il bytecode (e non più il sorgente) purché sia disponibile una JVM.
23
JAVA – Come funziona una JVM
Class Loader
ExecutionEngine
Native Interface
Runtime Data Area
Area dei Metodi
Registri Heap Stack
24
JAVA – Come funziona una JVM
Elementi della JVM – La memoria
• Area di memorizzazione dei metodiL'area di memorizzazione dei metodi contiene le tabelle dei simboli necessari per il link dinamico, informazioni
di debug aggiuntive, ambienti di sviluppo da associare all'implementazione di qualsiasi metodo e i bytecodedi Java che implementano tutti i metodi presenti nel sistema.
• RegistriI registri della macchina virtuale di Java sono affini ai registri che si trovano in un computer reale, essi
contengono lo stato in cui si trova la macchina durante le operazioni, influiscono sul funzionamento diquest'ultima e vengono aggiornati dopo l'esecuzione di ciascun bytecode.
• HeapCon il termine heap si fa riferimento a quella zona della memoria nella quale vengono allocati gli oggetti appena
creati. Al momento dell'avvio della JVM, una certa area di memoria viene assegnata allo heap. Il Garbagecollector è deputato alla rimozione degli oggetti non più utilizzati dal programma man mano che questo è in esecuzione.
• StackLo stack viene utilizzato per passare i parametri alle istruzioni che vengono man mano eseguite e per ricevere i
risultati da queste prodotti.
25
JAVA – Gestione della memoria
• Poiché Java ha eliminato la necessità di una gestione della memoria a livello di programmazione, la memoriaviene gestita automaticamente da un sistema che si occupa di “pulire” le aree di memoria allocate e direndere disponibili per successive operazioni.
• Il Garbage Collector (GC) si occupa di verificare che l’elemento presente in memoria non sia più referenziatoe, se l’elemento non ha riferimenti lo elimina liberando la memoria occupata e rendendola disponibile.L’intervento del GC che blocca tutte le attività della JVM fino al termine del suo intervento.
• Nel caso di un intenso utilizzo della memoria può accadere che gli interventi del GC non portino ad unaeffettiva liberazione delle aree di memoria o che la memoria non abbia aree contigue disponibili (memoryleak). In questo caso la JVM può far intervenire il GC in modo quasi continuo portando ad un blocco dellaJV e ad un necessario riavvio.
• L’esaurirsi delle risorse disponibili può portare a rilevare degli errori di memoria.
26
JAVA – Reperimento ed installazione
• Quella di seguito descritta interesserà l’installazione della Java di Oracle/SUN versione 1.8 upd144 con Modulo JDK su un S.O. Microsoft Windows Server 2016
• Prelevare il file dal sito della Oracle/SUN regolandosi sulla versione certificata con gli applicativi dautilizzare
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
• Per i riferimenti dettagliati di installazione consultare il link: https://corso.zucchettilab.it/index.html
27
• Lo standard Zucchetti prevedel’installazione nel percorso:unità:\Zucchetti\Javarelativamente al mondo HR o AGO
28
• Per l’installazione della parte JRE il setuppropone di default il percorso di installazioneC:\Program Files\Java\jre1.8.0_144.E’ possibile lasciare questo percorso invariato
29
Apache Tomcat – Reperimento ed installazione
• Quella di seguito descritta interesserà l’installazione di Apache Tomcat versione 8.5.16 su un S.O.Microsoft Windows Server 2016
• Prelevare il file dal sito dell’Apache Org. regolandosi sulla versione certificata con gli applicativi dautilizzarehttps://archive.apache.org/dist/tomcat/tomcat-8/v8.5.16/bin/
• Per i riferimenti dettagliati di installazione consultare il link: https://corso.zucchettilab.it/index.html
30
• Scegliere il Tipo di installazione “Normal”
• Selezionare nelle opzioni sottostanti ilcampo “Service Startup” all’interno dellavoce “Tomcat” al fine di attivare lo startupautomatico del servizio in caso di riavviodel server
• Avviare l’installazione escegliere l’opzione NEXT allaprima maschera, allasuccessiva selezionare IAGREE per continuare
31
• Compilare i valori in base alla configurazione delserver ospitante utilizzando porte TCP/IP libere
• Denominare il servizio con il riferimento all’ambito ed inserire i valori relativi all’utente manager del tomcat (user e password)
• Per il percorso della Java da utilizzare riportare interamente il path dell’installazione indicata precedentemente della JDK, sostituendo quello riportato di default
32
• Compilare il percorso di installazione delTomcat seguendo lo standard Zucchetti:unità:\Zucchetti\TomcatArelativamente al mondo HR o AGO
• In presenza di più nodi Tomcat,creare delle nuove directory diinstallazione Es. TomcatB,configurando porte TCP/IP diverserispetto al servizio Tomcat giàinstallato
33
• Impostare l’utente chegestisce il serviziointeragendo con la sezionerelativa alla Connessione
• In questa sezione è possibileavviare il servizio perverificarne la correttafunzionalità
• Avviare avviare un browserInternet e digitare ilpercorso:http://localhost:8080
34
• All’interno del percorso C:\Zucchetti\TomcatA\conf editare il file “catalina.properties”
Sostituendo tutto il blocco tomcat.util.scan.StandardJarScanFilter.jarsToSkip=\con la sola riga tomcat.util.scan.StandardJarScanFilter.jarsToSkip=*.jar
• Individuare nello stesso file il parametro
tomcat.util.scan.StandardJarScanFilter.jarsToScan=\log4j-web*.jar,log4j-taglib*.jar,log4javascript*.jar,slf4j-taglib*.jarsostituendolo con il seguentetomcat.util.scan.StandardJarScanFilter.jarsToScan=\log4j-web*.jar,log4j-taglib*.jar,log4javascript*.jar,slf4j-taglib*.jar,standard.jar
• All’interno del percorso C:\Zucchetti\TomcatA\conf editare il file“logging.properties “
aggiungendo alla fine del file il seguente parametroorg.apache.catalina.webresources.Cache.level = SEVERE
al fine di non registrare tutti i messaggi informativi di Apache Tomcat nelle fasi di avvio del servizio
35
JAVA_OPTS per HR
-XX:MaxMetaspaceSize=768m-Xss768m
JAVA_OPTS per AGO
-XX:MaxMetaspaceSize=768m-Xss768m-XX:MaxMetaspaceFreeRatio=75-Dorg.apache.catalina.STRICT_SERVLET_COMPLIANCE=false
36
• E’ possibile intervenire, tramite opportuni parametri, sul sistema di gestione dellamemoria della JVM.
-Xmx
-XX:MaxMetaspaceSize
-XssDimensione massima dell’HEAP
Dimensione dello STACK (per thread)
Dimensione massima del Permanent Generation
JAVA – Gestione della memoria ed eventuali problemi
• Se il GC non riesce a gestire correttamente la memoria o se le richieste di allocazione dimemoria superano la memoria momentaneamente disponibile viene generato un errore diOutOfMemory.
ERROR: java.lang.OutOfMemoryError: Metadata space
Indica che la memoria di Metaspace è esaurita
Aumentare il parametro di memoria -XX:MaxMetaspaceSize
ERROR: java.lang.OutOfMemoryError: Java Heap space
Indica che la memoria di Heap è esaurita
• Aumentare il parametro di memoria -XmX
37
Tomcat – Utilizzo ed accesso Tomcat Manager
Per accedere al Tomcat Manager è necessario per ragioni di sicurezza autorizzare in modo esplicito quali IP abilitare modificando il file TomcatA/webapps/manager/META-INF/context.xml
Gli IP localhost sono già abilitati
Aggiungere l’IP desiderato nel parametro “allow” come evidenziato
allow="192\.\168\.\1\.\110|127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
in alternativa usare
allow=".*" />
oppure
allow="\d+\.\d+\.\d+\.\d+|127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
per consentire l’accesso al Tomcat Manager da qualsiasi IP
38
Tomcat – Tomcat Directory e Logs
La directory di installazione di Tomcat è organizzata nelle seguenti sottodirectory:
• Bin (contiene gli script per avviare, riavviare e arrestare Tomcat)
• Conf (sono contenuti i file di configurazione di tomcat, i più importanti sono server.xml e web.xml)
• Lib (contiene i file jar di cui Tomcat fa uso)
• Log (sono presenti tutti i file di log per monitorare l'andamento del servizio)
• Temp (contiene file temporanei generati dal server in runtime)
• Webapps (Il cuore di Tomcat. In questa cartella ci sono tutti i file war dei quali abbiamo fatto il deployed)
• Work (sono contenute tutte le Servlet che sono state generate da una pagina JSP)
39
Tomcat – Tomcat Directory e Logs
Analizzando in dettaglio la directory log, possiamo notare che ad ogni avvio del servizio Tomcat saranno creati i seguenti files
In ogni file di log sono registrate tutte le attività inerenti il servizio installato, Java OPTS configurate ed eventuali errori collegati ai contesti in esecuzione
40
Installazione e configurazione MIPHR/PagheW
Ogni applicativo necessita della licenza
Il cliente può scaricare le licenze applicative da MyZucchetti (solo con l’utenza del cliente alla quale è stato registrato il contratto).
La licenza viene generata automaticamente in base al contratto inserito nel sistema informatico, normalmente il processo automatico viene completato il giorno successivo al caricamento del contratto.
Ad oggi ci sono quattro tipi di licenze:
HR (MIP, PagheWEB, HR-WorkFlow, CU770WEB, Presenze, etc.) AGO ATOOL START
La licenza consiste in un file xml, it.zucchetti.infinity.license.xml, che va copiata nella cartella WEB-INF/cfg di ogni applicativo, assicurandosi che sia la licenza corretta per il tipo di applicativo (HR, AGO, ATOOL, START).
Eseguire l'amministrazione del database con licenze non corrette (o con moduli diversi da quelli poi utilizzati) può dare origine ad anomalie applicative.
Installazione e configurazione MIPHR/PagheW
DBConfig
DBConfig MSSQL (2005 e successivi)JDBCConnectionURL.1=jdbc:sqlserver://192.168.0.1:1433;DatabaseName=DBNAMEJDBCDriver.1=com.microsoft.sqlserver.jdbc.SQLServerDriverUserName.1=usernamePassword.1=passwordInstance.1=SERVLETDefaultUserTimeout=3600
DBConfig POSTGRESQLJDBCConnectionURL.1=jdbc:postgresql://192.168.0.1:5432/DBNAMEJDBCDriver.1=org.postgresql.DriverUserName.1=usernamePassword.1=passwordInstance.1=SERVLETDefaultUserTimeout=3600
DBConfig ORACLE (verificare la compatibilità dei moduli con Oracle, quali AGO)JDBCConnectionURL.1=jdbc:oracle:thin:@192.168.0.1:1521:ORACLE_SIDJDBCDriver.1=oracle.jdbc.driver.OracleDriverUserName.1=usernamePassword.1=passwordInstance.1=SERVLETDefaultUserTimeout=3600
Database
Modalità di connessione al database
Applicativo WEB
file DBConfigWEB-INF/classes
driver jdbcWEB-INF/lib
Driver JDBC
Il driver di connessione va aggiunto in ogni applicazione nella seguente directory: Applicazione/WEB-INF/lib
È importante che nella directory WEB-INF/lib (di ogni applicativo web) non ci siano più driver per lo stesso database, ad esempio sqljdbc.jar e sqljdbc4.jar, oppure postgresql-8.4-703.jdbc3.jar e postgresql-9.3-1102.jdbc41.jar.
Il driver va scaricato in base alle versioni del database e della java utilizzati:
Microsoft JDBC: https://docs.microsoft.com/it-it/sql/connect/jdbc/download-microsoft-jdbc-driver-for-sql-server?view=sql-server-2017
Oracle JDBC: http://www.oracle.com/technetwork/database/features/jdbc/index-091264.html PostgreSQL JDBC: https://jdbc.postgresql.org/download.html
Installazione e configurazione MIPHR/PagheW
Installazione e configurazione MIPHR/PagheW
Per iniziare le attività di installazione collegarsi al portale MyZucchetti e scaricare l’ultimo installatore aggiornato dell’applicazione HRPortal
Area Tecnica > Post-vendita > Prodotti > HR > Portale > Installazioni
Prendere visione delle note PDF allegate ed una volta configurata correttamente la webapp all’interno del nodo Tomcat installato, comprensiva di licenza, DBConfig e driver jdbc, sarà richiesta l'esecuzione dell'amministrazione del database al fine di creare la struttura tabellare necessaria
Al termine dell’amministrazione, eseguire il primo accesso con le seguenti credenziali
Username: administratorPassword: admin
Al successivo riavvio dei servizi Tomcat, verrà richiesto dopo la successiva login, di aggiornare la password con una nuova
Installazione e configurazione MIPHR/PagheW
In base alla complessità della password scelta, verrà assegnato un punteggio inerente il livello di sicurezza della stessa
Il setup sistemistico inziale prevede la configurazione delle seguenti funzionalità:
Installazione e configurazione MIPHR/PagheW
• Configurazione archivio DMS
• Configurazione percorsi relativi ed assoluti
• Configurazione Live Update
• Configurazione gadget aggiornamenti
• Configurazione gadget licenza applicativa
• Configurazione HR abilitazioni per i moduli da installare/aggiungere
Installazione e configurazione MIPHR/PagheW
• Impostare il percorso DMS in Workspace – Archivio – Impostazioni – Impostazioni Globali
• Impostare i percorsi relativi ed assoluti delle webapps installate in in Pannello di Controllo – Sistema –Configurazione – Definizione Configurazione
Installazione e configurazione MIPHR/PagheW
• Impostare le credenziali Live Update per lo scarico automatico degli aggiornamenti in Pannello di Controllo – Sistema –Aggiornamento – Sistema –Configurazione Live Update
• Impostare il gadget per l’installazione degli aggiornamenti HR in Aggiungi Gadget – Portale ERM –Aggiornamenti Applicativi
Installazione e configurazione MIPHR/PagheW
• Impostare il gadget per l’installazione/rinnovo della licenza HR in MyHome - Aggiungi Gadget –Portale ERM – Gestione Licenza Applicativa
• Aggiungere in base agli applicativi installati, i relativi codici applicativi con abilitazioni agli ambienti in uso nel menu HR Abilitazioni dell’utente o gruppo di sicurezza
Introduzione ai Web Server : Microsoft IIS
Quella di seguito descritta interesserà l’installazione di Microsoft IIS versione 8.X su un S.O. Microsoft Windows Server 2016
Microsoft IIS è un modulo nativo del sistema operativo Windows ed è installabile utilizzando lo strumento Server Manager nel menù Aggiungi Ruoli e Funzionalità
Per i riferimenti dettagliati di installazione consultare il link: https://corso.zucchettilab.it/index.html
Introduzione ai Web Server : Microsoft IIS
• Dal Server Manager del server aprire il menu Manage e cliccare su Add Roles and Features
• Scegliere il componente Web Server (IIS)
Introduzione ai Web Server : Microsoft IIS
• Aggiungere gli eventuali ulteriori componenti richiesti
Aggiungere i seguenti Role services: • Performance – Dynamic Content Compression• Security – Windows Authentication (facoltativo
per configurazione SSO)• Application Development – CGI• Application Development – ISAPI Extensions• Application Development – ISAPI Filters
Introduzione ai Web Server : Microsoft IIS
• Aprire un browser e verificare il funzionamento di IIS testando l’url http://localhost
Introduzione ai Web Server : Microsoft IIS
Una volta installato è possibile configurare IIS per l’interfacciamento con i nodi Tomcat, attraverso:
• Configurazione filtro ISAPI Connettere Internet Information Services ai Tomcat senza aggiungere chiavi al registro di sistema di Windows
• Configurazione Virtual Host Configurare diversi Virtual Host per permettere la pubblicazione di diversi applicativi web, anche aventi lo stesso nome, su siti differenti.
Per i riferimenti dettagliati di installazione consultare il link: https://corso.zucchettilab.it/index.html