Docente: Dott. Stefano Gazzaniga Argomento: Sistemi Gestionali e Informatici 2 / 3 / 2017 I Sistemi Gestionali • Sono tra le principali applicazioni dei sistemi informativi di aziende, organizzazioni, PA, etc.. • Integrano molteplici attività: – Amministrazione – Gestione Finanze – Organizzazione e pianificazione – Produzione e vendita – Gestione clienti \ utenti – Etc.. I sistemi gestionali Tali applicativi sono frutto delle necessità di ampliare, ottimizzare e integrare il supporto ai processi organizzativi, di gestione e produzione E’ stato semplice realizzare quanto desiderato mediante l’informatizzazione dei processi e delle procedure I sistemi gestionali • Parallelamente è cresciuta anche l’esigenza di disporre di informazioni dettagliate e puntali, nonché di sintesi • Vengono realizzate applicazioni specifiche per l’analisi dei dati e produzione di reportistica al fine di elaborare strategie I sistemi gestionali A seguito dell’introduzione negli anni ‘80 di personal computer negli uffici e nelle aziende è iniziato l’utilizzo di applicazioni informatiche: • Pacchetti semplici con un numero limitato di funzionalità • Sistemi sviluppati ad hoc per soddisfare una specifica esigenza • ERP: sistemi di gestione di tutti i processi rilevanti di un’impresa (Enterprise Resource Planning «pianificazione delle risorse d'impresa») I sistemi gestionali La riduzione dei costi dell’ICT (Information and Comunication Tecnology) degli ultimi 15 anni: • è stata fondamentale per l’adozione di sistemi informatici e informativi sempre più complessi • ha spinto la sostituzione di vecchi programmi «stand alone» con soluzioni integrate e centralizzate, spesso organizzate in moduli che condividono un’unica base di dati (software gestionali) I sistemi gestionali La diffusione capillare di internet e l’aumento delle velocità di connessione hanno consentito di recuperare efficienza e ottimizzare i processi: • Permettendo al personale interno di lavorare anche da locali remoti • Coinvolgendo soggetti esterni (fornitori, consulenti, clienti, etc..) con strumenti quali portali web, applicazioni web oriented, etc.. Sistemi informatici Cosa significa sistema informatico (SI)? E’ un’espressione che indica in modo generico un computer o un insieme di computer o altri apparati elettronici (modem, server, router, etc…) interconnessi tra loro ed i relativi software, preposti a servizi di elaborazione a favore degli utenti. E’ anche detto infrastruttura IT o sistema elaborazione dati Sistemi informatici Da cosa è composto un SI? • Hardware: qualsiasi componente fisico di un calcolatore, di una periferica, di una apparecchiatura elettronica. Tutto ciò che si può toccare insomma. • rende possibile l'esecuzione del software « Hardware, parte del calcolatore che puoi prendere a calci » (Jeff Pesis) Sistemi informatici Da cosa è composto un SI? • Software: termine generico, definisce programmi e procedure progettate dall'uomo che indicano la sequenza di istruzioni per far eseguire ad un calcolatore determinati compiti Sistemi informatici • Un sistema informatico è dunque composto da una parte hardware e una parte software rispettivamente sotto forma di architettura hardware e architettura software tra loro dipendenti. Sistemi informatici • Alcune importati caratteristiche di un SI sono: • Disponibilità (attitudine a svolgere la funzione richiesta) • Affidabilità (misura della probabilità di guasto in un certo lasso di tempo) • Sicurezza (riservatezza, integrità e disponibilità dei dati) • Scalabilità (capacità di crescita o riduzione in base alle necessità) Sistema informativo Il sistema informativo non è sinonimo di sistema informatico! Il sistema informatico ha lo scopo di supportare il sistema informativo, e può essere considerata una parte del sistema informativo stesso. Sistema Informativo: insieme delle risorse e attività cui scopo è la gestione dell’informazione in un’organizzazione (raccolta, elaborazione, conservazione, comunicazione e diffusione) Sistema informativo Elementi dei sistema informativo sono: • Dati (componente base grezza del sistema) • Informazioni (insieme di dati già elaborati) • Persone (raccolgono i dati \ ne sono i destinatari) • Strumenti (infrastruttura tecnologica per l’elaborazione) • Procedimenti (procedure per ottenere le finalità desiderate) Sistema informativo Obiettivi del sistema informativo: • Efficienza – miglior risultato ottenibile a parità di risorse / minor uso di risorse a parità di risultati • Efficacia – rapporto tra risultato e obiettivo prefissato, richiede un confronto qualitativo Un altro parametro da considerare è • Economicità – prezzo pagato \ efficienza Sistema informativo Risulta quindi evidente che ogni tipologia di realtà lavorativa necessita che venga studiato e realizzato un proprio sistema informativo adeguato alle proprie finalità Sistema informatico: hardware Computer: apparecchio elettronico di tipo digitale usato per analizzare e trattare dati (anche molto complessi) in maniera automatica e in tempi brevissimi. I computer possono operare in modalità stand-alone (locale) oppure connessi tra loro (rete) Sistema informatico: hardware PC (personal computer): è un computer ad uso generico cui dimensioni, prestazioni, prezzo di acquisto lo rendono adatto all’uso quotidiano del singolo individuo Workstation: computer «general purpose» monoutente dotato di più elevate risorse di elaborazione. Il costo è maggiore rispetto ai normali personal computer. Destinato ad uso e compiti professionali, spesso in ambito grafico o ingegneristico Sistema informatico: hardware Server: sono computer logicamente dedicati all'espletamento di particolari servizi richiesti da altri computers client all'interno di un'architettura di rete client-server come reti LAN e Internet. Solitamente sono dotati di risolse hardware ben dimensionate in base al tipo di servizi da mantenere e il numero di client da servire. Sistema informatico: hardware Computer per scopi dedicati sono per esempio: • • • • Le console per videogiochi Dispositivi per l’automazione industriale Smartphone e tablet Mainframe – grande computer costituito da una potente unità centrale di elaborazione dati capace di gestire molti programmi contemporaneamente, alla quale sono collegati numerosi terminali • Supercomputer – esecuzione di calcoli particolarmente onerosi. Es: Meteo Sistema informatico: hardware I computer possono effettuare elaborazioni sia in modo locale che attraverso reti. • Elaborazione locale – I Programmi e i dati su cui operano risiedono sul computer stesso • Elaborazione in rete – I Programmi e\o i dati su cui operano sono fruibili e mantenuti da altri computer sulla rete Sistema informatico: hardware Una rete locale è costituita da un insieme di computer e dispostivi elettronici periferici collegati tra di loro, in grado di condividere sia risorse hardware che software L’acronimo LAN (local area network) identifica una rete locale informatica che copre un’area limitata di piccole dimensioni, come un ufficio, una scuola, un’azienda. Per WAN (wide area network) invece si intende una rete di dimensione molto più ampia, anche a livello di regione geografica Sistema informatico: esempio LAN Sistema informatico: LAN La topologia di rete più diffusa nei piccoli uffici è quella detta a stella. I computer sono tutti connessi ad un componente centrale. I dati sono inviati dal computer trasmittente attraverso il concentratore ai computer della rete. Tale topologia è facilmente espandibile collegando altri concentratori. Sistema informatico: LAN Esempio stella esteso Sistema informatico: LAN Vantaggi sistema a stella: • Elevata affidabilità • Elevata scalabilità • Efficienza (se i concentratori sono dotati di opportuna intelligenza) Svantaggi sistema a stella: • Il guasto di un concentratore può provocare la perdita totale delle funzionalità di rete Sistema informatico: rete client server L’architettura di rete più diffusa in piccoli e medi uffici è sicuramente quella denominata client - server: Uno (o più) client si collegano a server per la fruizione dei servizi e delle risorse che questi ultimi mettono a disposizione. In questo contesto si può parlare di client e server riferendosi all'hardware oppure al software Sistema informatico: rete client server Esempio interazione client – server Ovviamente un server può soddisfare molteplici richieste anche da parte di più clients! E molto velocemente! Sistema informatico: rete client server Facendo uno specifico riferimento all’hardware: un client è un componente dotato di memoria e capacità elaborativa locale che può utilizzare risorse messe a disposizione da server Esempi: Personal Computer Smartphone Tablet Thin-client Sistema informatico: rete client server I client hardware: • possono in generale essere macchine semplici con risorse e affidabilità inferiori • hanno l'unico compito di interagire con l'utente • non contengono informazioni critiche o sensibili (o almeno non dovrebbero…) Sistema informatico: rete client server Facendo uno specifico riferimento al software: un client è un componente che accede a servizi e risorse messe a disposizione da una componente server Solitamente è di limitata complessità, limitandosi ad operare come interfaccia verso il server. Esempi di programmi client: Browser Internet (Chrome, Firefox, Internet Explorer..) Mail(Outlook, Live mail, Thunderbird…) Sistema informatico: rete client server Esempi di servizi forniti attraverso i server • File server: permettono agli utenti di accedere ai file situati sul server come se fossero in locale sul proprio elaboratore, agevolando la condivisione di informazioni. Tale termine si riferisce solitamente ad una macchina progettata per mettere a disposizione degli utenti di una rete spazio su un disco (o più dischi) nel quale sia possibile salvare, leggere, modificare, creare file e cartelle condivise secondo regole o autorizzazioni che l’amministratore organizza e gestisce. Sistema informatico: rete client server Esempi di servizi forniti attraverso i server • Database server indica una categoria di sistemi software che consentono la creazione e la gestione di database (base di dati). Tale termine indica una banca dati strutturata riguardante uno stesso argomento o argomenti correlati tra loro, nella quale sono possibili operazioni di inserimento, ricerca, cancellazione, aggiornamento da parte di software specifico. Sistema informatico: rete client server Esempi di servizi forniti attraverso i server • Web server: è un programma che risiede su un calcolatore che si occupa di fornire, dietro richiesta dei browser (client) una pagina web. I dati viaggiano in rete trasportate dal protocollo HTTP. L'insieme di webserver presenti su Internet forma il World Wide Web, probabilmente il servizio più noto insieme alla mail. Sistema informatico: rete client server Esempi di servizi forniti attraverso i server Altri esempi: • Print server: condivisione delle stampanti • Mail server: gestione della posta elettronica • Server DHCP , DNS, etc.. : gestione rete informatica • Server di autenticazione: organizzazione utenti e risorse Sistema informatico: rete client server Ricapitolando, tutti questi servizi (web, l'e-mail, i database, etc..) sono quindi divisi in: • una parte client software (residente ed in esecuzione sul pc client) • una parte server software (residente ed in esecuzione sul calcolatore server) Sistema informatico: rete client server Esempio: un browser su un computer è un CLIENT, ma anche il computer su cui gira il browser si può definire CLIENT! Sistema informatico: rete client server I software applicativi server sono molto complessi e devono essere molto affidabili. Devono eseguire tutto ciò per cui sono stati realizzati, ma anche implementare tutte le tecniche di gestione degli accessi, allocazione e rilascio delle risorse, condivisione e sicurezza dei dati (e delle risorse) Sistema informatico: rete client server Client e server sono in collegamento attraverso una rete tramite protocolli di comunicazione. Il protocollo può essere in chiaro o in certi casi crittografato. Tale protocollo garantisce che i dispositivi che lo utilizzano possano comunicare correttamente tra loro (è insomma un insieme formale di regole) Sistema informatico: rete client server Esempi di protocolli: • HTTP: Hyper Text Transfer Protocol: il browser è un HTTP client, il web server è un HTTP server • HTTPS: come il precedente, ma crittografato • FTP: File Transfer Protocol • SMTP: Simple Mail Transfer Protocol (email) Questi protocolli (e altri...) fanno parte della Internet Protocol Suite Sistema informatico: rete client server Vantaggi dell’architettura client - server: • • • • • Scalabilità dei dispositivi collegabili (client e server) Scalabilità dei servizi e delle risorse fornite Amministrazione centralizzata Gestione centralizzata delle impostazione di sicurezza Ottimizzazione delle risorse Sistema informatico: rete client server Svantaggi: • L’implementazione e l’amministrazione del sistema richiede competenze tecniche specifiche • Criticità del server • Costi Sistema informatico: rete client server Semplificando, dal punto di vista hardware: • un server è un computer molto potente in grado di gestire interi uffici, aziende, scuole etc. Un server mette a disposizione risorse per i numerosi computer e dispositivi connessi nella sua rete o attraverso internet, solitamente meno potenti: sono i client. • I client sono normali pc che usano gli utenti per svolgere il proprio lavoro. Sistema informatico: rete client server Il server è un elemento fondamentale dell'infrastruttura informatica di cui fa parte, in quanto i suoi malfunzionamenti si ripercuotono su tutti i client che hanno accesso ai suoi servizi e risorse Sono necessari quindi maggiori investimenti per via dell'importanza che il buon funzionamento del server ha per i suoi utenti Sistema informatico: rete client server Per questo motivo, per i server si adottano accorgimenti volti a garantire affidabilità e sicurezza: • utilizzo di hardware di classe superiore, con prestazioni elevate ed elementi ridondanti (dischi RAID, alimentatori) • protezione dell'alimentazione elettrica mediante gruppo di continuità • protezione fisica mediante localizzazione in un locale apposito ad accesso ristretto • connessione di rete preferenziale, di capacità superiore • climatizzazione • configurazioni del sistema operativo volte a garantire maggiore affidabilità e sicurezza • gestione da parte di sistemisti specializzati Sistema informatico: rete client server In caso di carico lavoro eccessivo per un solo server, o per ottenere alti livelli di affidabilità, più server possono suddividersi il compito di erogare un servizio o un gruppo di servizi. In questo caso si può parlare di un'unica risorsa computazionale detta server cluster: può continuare a funzionare anche se un certo numero delle macchine componenti subisce un guasto, ma la risorsa subisce un degrado delle prestazioni generali. Ovviamente sono necessari software e configurazioni specifiche. Sistema informatico: rete client server Spesso, almeno da punto di vista software, un server per erogare un certo tipo di servizio si appoggia a sua volta ad altri server magari localizzati remotamente. Risulta quindi essere contemporaneamente. sia client che server Un esempio tipico può essere quello di un mail server aziendale. Sistema informatico: rete P2P Solitamente per peer-to-peer (o P2P) si intende una qualsiasi rete informatica in cui non siano individuabili client o server fissi. Tale rete è infatti composta da un numero di nodi equivalenti (peer appunto) che fungono sia da client che da server verso altri nodi della rete. Sono reti decentralizzate. Sistema informatico: rete P2P Sistema informatico: rete P2P • Ogni nodo è in grado di avviare e completare una comunicazione. • I nodi possono essere molto diversi tra loro per velocità di banda, elaborazione, etc.. • E’ l’architettura opposta alla client – server Sistema informatico: rete P2P L’esempio più noto di una rete P2P è quello del file sharing, il cui scopo è di favorire il libero scambio dei file tra i dispositivi connessi ad internet. Tale applicazione oltre ai problemi di carattere tecnico legati alla banda e all’affidabilità, ha portato controversie di carattere legale circa la diffusione di materiali protetti dal diritto d’autore. Sistema informatico: rete P2P Inoltre, una rete «aperta» di questo tipo può subire attacchi informatici di varia natura, mettendo in pericolo la sicurezza e la privacy degli stessi utilizzatori. E’ fondamentale dotarsi di strumenti come antivirus e firewall, nonché programmi specifici per la rimozione di infezioni. Resta fondamentale tuttavia una buona cultura informatica per evitare situazioni a rischio Applicazioni web based Si parla di software Web-based quando ci si riferisce a programmi in cui tutte le funzioni sono accessibili con un normale web-browser (es. Explorer, Firefox…) e non necessita di alcun software di installazione sul computer degli utenti. Possono tuttavia essere necessari specifici plug-in o richiedere l’abilitazione di specifiche funzionalità del browser Non tutti i browser possono essere compatibili Applicazioni web based La fruizione può avvenire attraverso la rete all’interno del proprio sistema informatico locale (detta INTRANET) oppure attraverso la rete Internet. Un client quindi accede connettendosi a funzionalità applicative residenti su un server utilizzando come terminali normali web browser attraverso i consueti protocolli di rete Applicazioni web based Il modello web based è divenuto piuttosto popolare poco prima del 2000 con la diffusione di Internet, in un contesto di web dinamico. L’opportunità di aggiornare ed evolvere a costo ridotto il proprio applicativo, senza essere costretti a distribuire numerosi aggiornamenti su supporti fisici, ha reso la soluzione ampiamente utilizzata dai produttori di software Applicazioni web based Precedentemente per ogni applicativo basato su un’architettura client - server era necessario che fosse installata una parte client (client-side) direttamente sulla calcolatore di ciascun utente. Qualunque aggiornamento, patch o modifica dell'applicativo lato server (server-side) si trasformava nella esigenza di installare le versioni aggiornate su tutti i calcolatori degli utenti dell'applicativo. Applicazioni web based Ovviamente questo modo di operare introduceva problematiche dirette quali: • Onere economico produttore • Costo periodico cliente di aggiornamento • Tempi di fermo per installare aggiornamenti Applicazioni web based Ora invece durante la sessione di lavoro, il web browser diventa il client universale per tutte le web-application, indipendentemente dal produttore del software. Ogni pagina Web viene inviata al client come fosse un documento statico, ma con elementi e contenuti attivi embedded (incorporati) nella pagina stessa Applicazioni web based Questa parte attiva, dinamica lato client è affidata a linguaggi standard e comuni a tutti i browser (es. Javascript) Le pagine web ormai costituiscono delle vere e proprie «interfacce utente» grazie a tecnologie dinamiche (come per esempio Ajax, basata su librerie «esperte») oppure plug-in (es. Flash Player) Ultimamente anche applicazioni complesse come i gestionali, pacchetti applicativi office automation, ritocco fotogratico, etc.. Vengono distribuiti con questa tecnica Applicazioni web based Come sono interconnessi client e server? • Intranet: – rete aziendale o riservata basata sulle stesse tecnologie di Internet all’interno della quale operano applicazioni web-based il cui accesso è strettamente riservato all’azienda o ente. • Internet: – rete di accesso pubblico per la diffusione di informazioni, applicazioni distribuite… (esistono mille definizioni!) • Extranet: – insieme di applicazioni web-based fruibili via Internet con accesso riservato a determinati utenti per usi specifici. Rappresenta l’estensione dei sistemi Intranet sulla rete pubblica. Applicazioni web based Applicazione Distribuita Applicazione software realizzata attraverso la collaborazione di diverse entità in esecuzione su risorse computazionali fisicamente distinte Un sistema distribuito è quindi un ambiente entro il quale possono essere operative una o più applicazioni distribuite Applicazioni web based Il mondo Web da questo punto di vista è quindi un sistema distribuito Le applicazioni web-based traggono vantaggi se organizzate all’interno di un sistema distribuito Applicazioni web based Esempio applicazione distribuita: Biglietteria online Utenti Applicazioni web based Vantaggi: • Tutti i vantaggi evidenziati dai sistemi distribuiti in generale • L’interfaccia tra Client e Server standardizzata permette di creare applicazioni senza la necessità di installare un Client dedicato sui Client • Il Web Browser diventa un Client «general purpose» utile per realizzare le applicazioni più diverse • La standardizzazione dello sviluppo implica una semplificazione nella realizzazione Applicazioni web based Svantaggi: • Il modello di interazione Client-Server è predefinito e non permette interattività forte • L’interfaccia utente è limitata alle funzioni che lo standard definisce, impoverendosi rispetto alle prestazioni di un Client dedicato Applicazioni web based I browser (desktop) più comunemente utilizzati in Italia sono (dato gennaio 2017): 1. Chrome 58% 2. Firefox 18% 3. Internet Explorer 12% 4. Safari 7% 5. Edge 3% 6. Altri.. 2% Applicazioni web based Molti browser (per desktop) citati sono disponibili per quasi tutti i sistemi operativi più diffusi, altri no • Edge solo su SO Microsoft Windows 10 • Internet Explorer tutti i SO Microsoft Applicazioni web based Uno dei componenti più diffusi disponibili per tutti i browser e sistemi operativi è sicuramente Applicazioni web based Le domane che più spesso ci facciamo sono: • • • • Cos’è Java? A cosa serve Java?? Devo installare Java??? Quale versione??? Devo aggiornare Java quando me lo chiede???? Applicazioni web based • Cos’è Java? Java è un linguaggio di programmazione e una piattaforma di elaborazione sviluppati da Sun Microsystems nel 1995 (ora Oracle). Esiste un numero notevole di applicazioni e siti Web, in aumento ogni giorno, che funzionano esclusivamente se è stato installato Java. Applicazioni web based • Che cosa si ottiene quando si scarica software Java? Scaricando il software Java si ottiene Java Runtime Environment (JRE). JRE è composto dalla Java Virtual Machine (JVM), dalle classi core della piattaforma Java e dalle librerie Java di supporto. JRE è la parte runtime del software Java, ovvero tutto ciò che serve per eseguire Java nel browser Web Applicazioni web based • Cos'è il plugin Java? Il plugin Java è un componente di Java Runtime Environment (JRE). JRE consente di eseguire applet scritte nel linguaggio di programmazione Java in vari browser. Il plugin Java non è un programma autonomo e non può essere installato separatamente. Applicazioni web based • A cosa mi serve? Devo installare Java??? Devo installare Java se ho necessità di utilizzare web application che fanno uso di tale linguaggio di programmazione e piattaforma Applicazioni web based • Quale versione di Java devo installare? Dipende: • dal browser che stiamo utilizzando • dal sistema operativo installato sul nostro dispositivo • dalla versione Java richiesta dall’applicazione che lo necessita Applicazioni web based • Devo aggiornare Java quando me lo chiede???? Parliamone! Non è raro che applicazioni scritte per una versione di Java (es. 1.7) cessino di funzionare se viene aggiornata (es. 1.8) Applicazioni web based • Devo aggiornare Java quando me lo chiede???? E’ tuttavia possibile mantenere diverse versioni di JRE sullo stesso PC (con opportuni accorgimenti) Applicazioni web based Java è disponibile quindi per svariati browser, svariati sistemi operativi e calcolatori. Ma a cosa serve e perché è così diffuso?? Applicazioni web based Java è indipendente dalla macchina su cui è eseguito al punto che il programmatore può evitare di gestire aspetti particolarmente specifici relativi al client Applicazioni web based Java è inoltre stato progettato per poter essere implementato su una varietà di architetture e dispositivi: non solo computer, ma anche telefoni cellulari, set-top box, equipaggiamento elettronico di veicoli di vario tipo e server web. Questi vantaggi hanno il loro costo: le applicazioni Java, quelle per PC in particolare, sono più lente e pesanti, perchè non sono eseguite direttamente dalla macchina, bensì da un software intermedio. Applicazioni web based Programmare in Java è quindi molto conveniente per chi sviluppa applicativi in quanto essendo indipendente dall’hardware non ci si deve preoccupare di quale dispositivo elettronico eseguirà l’applicativo (… e magari lo sviluppatore non avrebbe nemmeno modo di saperlo!) Applicazioni web based Sarà poi la JRE (corretta) installata sul dispositivo dell’utente tradurre ed eseguire il programma: Applicativo JAVA (.jar) JRE (Java Runtime Environment) Interpretazione ed esecuzione Fine