Progetto di Applicazioni Software



Documenti analoghi
Progetto di Applicazioni Software

L evoluzione delle Applicazioni Distribuite

Basi di dati. Corso di Laurea in Ingegneria Informatica Canale di Ingegneria delle Reti e dei Sistemi Informatici - Polo di Rieti

Architettura di un sistema operativo

Lezione 1. Introduzione e Modellazione Concettuale

Indice. Indice Premessa e scopo del documento Ambiente operativo Architettura di sistema... 5

Architetture Informatiche. Dal Mainframe al Personal Computer

Architetture Informatiche. Dal Mainframe al Personal Computer

Sistemi Informativi Distribuiti

SDD System design document

Sistemi informativi secondo prospettive combinate

Architetture e applicazioni web

Scenario di Progettazione

Approccio stratificato

Progetto di Applicazioni Software

Introduzione alla Virtualizzazione

Progetto Virtualizzazione

Architetture Applicative

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

3. I Virtual Learning Environment ovvero: le piattaforme

Corso Web programming

Progettaz. e sviluppo Data Base

@2011 Politecnico di Torino. Pag. 1. Architettura distribuita. Architetture Client/Server. Architettura centralizzata. Architettura distribuita

Gartner Group definisce il Cloud

InitZero s.r.l. Via P. Calamandrei, Arezzo

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia

DBMS e Linguaggi di programmazione nell'era di Internet

Concetti base. Impianti Informatici. Web application

Caratteristiche principali. Contesti di utilizzo

Base di dati e sistemi informativi

Architetture software. Virtualizzazione

ELEMENTI DI PROGETTAZIONE SOFTWARE

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

B.P.S. Business Process Server ALLEGATO C10

Informatica Documentale

Ciclo di vita dimensionale

Infrastruttura di produzione INFN-GRID

L obiettivo che si pone è di operare nei molteplici campi dell informatica aziendale, ponendosi come partner di riferimento per l utenza aziendale.

1. Introduzione agli ERP e a SAP

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

SERVICE MANAGER. Architettura Client-Server e Web based di Servizi Specializzati per la Gestione di Periferiche e Connettività

Architetture dei WIS. Definizione di WIS. Benefici dei WIS. Prof.ssa E. Gentile a.a

IT Cloud Service. Semplice - accessibile - sicuro - economico

Tecnologia dei Sistemi Informativi. architettura s.i. 1

MetaMAG METAMAG 1 IL PRODOTTO

SISTEMI E RETI. Crittografia. Sistemi distribuiti e configurazione architetturale delle applicazioni WEB.

WorkFLow (Gestione del flusso pratiche)

Virtualization. Strutturare per semplificare la gestione. ICT Information & Communication Technology

7. Architetture Software

Sistemi avanzati di gestione dei Sistemi Informativi

1. BASI DI DATI: GENERALITÀ

Siti web centrati sui dati (Data-centric web applications)

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

BASE DI DATI: introduzione. Informatica 5BSA Febbraio 2015

Training sulle soluzioni SAP BusinessObjects BI4

Applicazioni web centrati sui dati (Data-centric web applications)

Componenti Web: client-side e server-side

Software di base. Corso di Fondamenti di Informatica

Sistemi centralizzati e distribuiti

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione

Creare una Rete Locale Lezione n. 1

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL

Business Intelligence

.EVERYWHERE LOGIN. entra nel futuro. partnership signed

Sistemi avanzati di gestione dei Sistemi Informativi

Candidato: Luca Russo Docente: Prof. Raffaele Montella. 27 Marzo 2013

2 Gli elementi del sistema di Gestione dei Flussi di Utenza

Sistemi di gestione delle basi di dati. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma

Implementing a new ADT based on the HL7 version 3 RIM. Esempio

1.1 Introduzione alle basi di dati

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni

e-dva - eni-depth Velocity Analysis

Database e reti. Piero Gallo Pasquale Sirsi

Università degli Studi "Roma Tre" Dipartimento di Informatica ed automazione. Facoltà di Ingegneria

Object Oriented Software Design

Architettura SW Definizione e Notazioni

Turismo Virtual Turismo Virtual Turismo Virtual

Database: collezione di fatti, registrabili e con un ben preciso significato, relazionati fra di loro

Object-Relational Mapping

Distributed Training Facility

In estrema sintesi, NEMO VirtualFarm vuol dire:

Corso di Amministrazione di Sistema Parte I ITIL 1

Università degli Studi di Bologna Bologna, 12/12/2002 Corso di Laurea In Informatica. Alessandro Valenti. Sessione II

Protocolli e architetture per WIS

Programma del Corso. Dati e DBMS SQL. Progettazione di una. Normalizzazione

Capitoli 8 e 9. SQL embedded. Applicazioni tradizionali Applicazioni Internet. Sistemi di basi di dati Raghu Ramakrishnan, Johannes Gehrke

Presentazione di Cedac Software

REALIZZARE UN MODELLO DI IMPRESA

Piano Nazionale di Formazione degli Insegnanti sulle Tecnologie dell'informazione e della Comunicazione. Percorso Formativo C1.

L o. Walter Ambu japs: una soluzione agile (

Automazione Industriale (scheduling+mms) scheduling+mms.

Hardware delle reti LAN

Lezione 4 La Struttura dei Sistemi Operativi. Introduzione

Transcript:

Progetto di Applicazioni Software Antonella Poggi Dipartimento di Informatica e Sistemistica Antonio Ruberti SAPIENZA Università di Roma Anno Accademico 2010/2011 Questi lucidi sono stati prodotti sulla base del materiale preparato per il corso di Progetto di Basi di dati da D. Lembo. Layer di un sistema informativo resource management A livello concettuale un sistema è progettato in termini di tre diversi componenti funzionali () 1. Presentazione 2. Logica dell applicazione 3. Gestione delle risorse Antonella Poggi Progetto di Applicazioni Software Architetture Software - 2

Client di un sistema informativo E un qualsiasi utente o programma software che vuole effettuare un operazione sul sistema I interagiscono con il sistema attraverso il Antonella Poggi Progetto di Applicazioni Software Architetture Software - 3 Presentation Layer E il livello del sistema che gestisce la comunicazione con le entità esterne al sistema stesso () Comprende le componenti che si occupano di presentare l informazione verso i, e che consentono ai di interagire con il sistema per sottomettere operazioni ed ottenere risultati I possono essere completamente esterni ed indipendenti dal : nei sistemi accessibili tramite web browser che visualizzano pagine HTML, il è costituito dai moduli del web server che concorrono a creare i documenti HTML (ad es. Java Servlet), mentre il browser è il In altri casi il ed il possono essere fusi insieme: spesso esiste un programma che assolve ad entrambi i compiti Antonella Poggi Progetto di Applicazioni Software Architetture Software - 4

Application Logic Layer E il livello del sistema che si occupa del processamento dei dati necessario per produrre i risultati da inoltrare al livello di presentazione Un programma che implementa le operazioni legate ad un prelievo su un conto corrente bancario, o la sequenza di passi da compiere per effettuare un acquisto on-line sono esempi di logica applicativa di un sistema Il livello della logica applicativa è anche chiamato processo di business, insieme delle regole di business, o semplicemente server (in questi casi il sottostante livello è rispettivamente chiamato persistence storage, business objects, o database) Antonella Poggi Progetto di Applicazioni Software Architetture Software - 5 Resource Management Layer E il livello che gestisce i dati che sono necessari al funzionamento dell intero sistema I dati possono risiedere su una base dati, un file system, o altri contenitori di informazioni In linea di principio, il livello di gestione delle risorse gestisce le differenti sorgenti di dati che fanno parte del sistema informativo, indipendentemente dalla loro natura Nel caso in cui esso è implementato tramite un DBMS, è detto semplicemente data Secondo un accezione più generale, questo può includere qualsiasi sistema in grado di fornire informazione Antonella Poggi Progetto di Applicazioni Software Architetture Software - 6

Architettura dei sistemi informativi Gli strati discussi finora sono costrutti concettuali che separano le funzionalità di un sistema informativo Nell implementazione dei sistemi reali, questi strati possono essere combinati e distribuiti in diversi modi Quando consideriamo l implementazione di un sistema informativo, facciamo riferimento ai livelli del sistema con il termine tier, piuttosto che conceptual Tier = modulo software che implementa uno o più conceptual Un tier non può essere realizzato su più di una macchina, ma due tier, per essere distinti, non devono necessariamente risiedere in due macchine distinte! Antonella Poggi Progetto di Applicazioni Software Architetture Software - 7 Architettura One-tier resource management L architettura One-tier combina tutti i livelli concettuali in un un unico tier Rispecchia l architettura hw basata su mainframe tipica dei primi calcolatori elettronici Gli utenti accedevano tramite terminali non intelligenti (in genere schermo e tastiera) Antonella Poggi Progetto di Applicazioni Software Architetture Software - 8

Architettura One-tier svantaggi I tre livelli sono gestiti da un unico modulo, che risiede quindi in un unica macchina L intero livello di presentazione risiede sulla stessa macchina, che si prende carico di controllare ogni aspetto dell interazione con il e.g., calcolo centralizzato delle visualizzazioni grafiche delle interfacce! richiede molta potenza di calcolo! supporta un basso numero di utenti Non vengono definite application program interface (API) che possano facilitare l interazione con altri sistemi! poca portabilità del sistema! difficile da manutenere! difficile da aggiornare Antonella Poggi Progetto di Applicazioni Software Architetture Software - 9 Architettura One-tier aspetti positivi Tutto risiede in un unica macchina! Non ci sono costi di comunicazione! Gestire e controllare le risorse è più semplice Client non intelligenti! Bassi costi di impiego Il progettista è libero di fondere i livelli concettuali! aumenta l efficienza del sistema, design ottimizzato Antonella Poggi Progetto di Applicazioni Software Architetture Software - 10

Architettura two-tier resource management Il sistema informativo è partizionato tra due tier: I hanno la possibilità di processare ulteriormente l informazione fornita dal server Si è affermata con il diffondersi di PCs e workstation e con lo sviluppo di nuove tecniche software per i sistemi distribuiti (ad es., RPC) Introduce il concetto di API (Application Program Interface) interfaccia per invocare il sistema dall esterno Il tier nel gestisce il livello di presentazione invoca le funzionalità dell applicazione I si dividono in Thin (con soli compiti di presentazione) e Thick (inglobano parte della logica dell applicazione) Antonella Poggi Progetto di Applicazioni Software Architetture Software - 11 Architettura two-tier vantaggi Permette di realizzare un architettura /server Al tempo stesso, le architetture two-tier garantiscono maggiore portabilità rispetto all architettura one-tier I sono indipendenti gli uni dagli altri: si possono avere diversi livelli di presentazione sulla base delle esigenze di diversi La capacità di calcolo del consente di avere interfacce grafiche sofisticate ed allo stesso tempo risparmio di risorse sul server La possibilità di combinare sul server i livelli di logica dell applicazione e di gestione delle risorse consente di mantenere una certa efficienza Antonella Poggi Progetto di Applicazioni Software Architetture Software - 12

Architettura two-tier svantaggi La contemporanea presenza sul server della logica dell applicazione e della gestione delle risorse richiede server dalle prestazioni abbastanza elevate Supportano un limitato numero di, a causa della necessità di mantenere informazioni sulla connessione e sull autenticazione dei Complessità dovuta alla pubblicazione ed al mantenimento di interfacce API, o a compatibilità fra diversi componenti I si sono evoluti indipendentemente dai server ed hanno presentato nel tempo funzionalità sempre più avanzate. In particolare, hanno cercato di integrare più server, ma con l architettura sbagliata! Antonella Poggi Progetto di Applicazioni Software Architetture Software - 13 Architettura two-tier ed Integrazione 1 2 server 1 resource management resource management server 2 L interazione di uno stesso con più livelli di gestione di risorse ha fatto nascere l esigenza di avere via via più potenti, oltre che uno strato di logica applicativa per gestire l integrazione delle risorse sul stesso! Non scalabile! Antonella Poggi Progetto di Applicazioni Software Architetture Software - 14

Architettura three-tier application logic resource management middleware I livelli concettuali sono completamente disaccoppiati Risponde all esigenza di scalabilità integrare più server gestire più utenti Si avvale della presenza di stabili interfacce (API) sia tra il e l application logic che tra l e il resource management Si può avvalere della funzionalità offerte da un middleware integrazione replicazione Antonella Poggi Progetto di Applicazioni Software Architetture Software - 15 Il middleware Il middleware è l insieme delle astrazioni di programmazione e delle infrastrutture che supportano lo sviluppo della logica dell applicazione Come astrazione di programmazione: Nasconde i dettagli dell hardware, della rete e della distribuzione della computazione Presenta sempre più potenti primitive che non cambiano concetti di base di RPC ma aumentano la flessibilità nel loro uso La sua evoluzione è influenzata dalle tendenze nei linguaggi di programmazione (RPC e linguaggio C, CORBA e linguaggio C++, RMI e linguaggio Java, SOAP-XML e Web services) Come infrastruttura: Fornisce una piattaforma per lo sviluppo e l esecuzione di applicazioni complesse Presenta interfacce sempre più standardizzate Si evolve verso un architettura orientata ai servizi L obiettivo è l integrazione delle piattaforme e la flessibilità nella configurazione Antonella Poggi Progetto di Applicazioni Software Architetture Software - 16

Architettura three-tier - vantaggi Consente l integrazione di sistemi differenti all interno di una LAN Tutta la logica dell applicazione risiede nello strato intermedio, garantendo per l intero sistema: maggiore portabilità manutenzione più semplice aggiornamento di uno qualsiasi dei tier più semplice maggiore flessibilità maggiore scalabilità Il livello della logica dell applicazione può essere distribuito su diversi server Antonella Poggi Progetto di Applicazioni Software Architetture Software - 17 Architettura three-tier svantaggi Lo svantaggio principale è nel decadimento delle performance dovute ai problemi di comunicazione fra i diversi nodi del sistema Costo aggiuntivo per implementare le interfacce standard Antonella Poggi Progetto di Applicazioni Software Architetture Software - 18

Da three-tier a N-tier: il caso di Internet Web server Internet Web browser HTML filter Il livello di presentazione è più complesso: comprende un Web Server application logic resource management middleware Antonella Poggi Progetto di Applicazioni Software Architetture Software - 19 DBMS per la logica dell applicazione database management system DBMS sono usati tradizionalmente per gestire i dati user defined database resource manager Database developing environment external application Forniscono molti strumenti per realizzare parte della logica dell applicazione triggers replicazione stored procedures queuing systems! funzioni estremamente efficienti! problemi: scalabilità, modularità, manutenzione e aggiornamento Architetture Software - 20

In questo corso (1) Vogliamo realizzare semplici sistemi N-tier, in cui i livelli concettuali di presentazione, logica dell applicazione e gestione delle risorse siano disaccoppiati Ci rifacciamo alle architetture /server (anche quando il nostro sistema risiede su una singola macchina) Vogliamo che la logica dell applicazione non risieda completamente nel DBMS Ci concentriamo sul livello della logica dell applicazione, sul data e sulla interazione fra i due (JDBC e PHP) Il livello di presentazione deve essere separato, ma non richiediamo sia particolarmente sofisticato Non facciamo necessariamente uso di un middleware Antonella Poggi Progetto di Applicazioni Software Architetture Software - 21 In questo corso (2) Presentation Insegnamo a realizzare un applicazione web che si connette ad un DBMS attraverso diverse modalità (Java/JDBC, PHP) Application logic Application logic Resource management A livello di deployment sceglieremo un DBMS relazionale con supporto per stored procedure e trigger (e quindi possibilità di gestire parte della logica applicativa lato server) Antonella Poggi Progetto di Applicazioni Software Architetture Software - 22