Progetto di Applicazioni Software



Documenti analoghi
Progetto di Applicazioni Software

Progetto di Applicazioni Software

L evoluzione delle Applicazioni Distribuite

Architettura di un sistema operativo

Lezione 1. Introduzione e Modellazione Concettuale

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

Laboratorio di Informatica I

Architetture Informatiche. Dal Mainframe al Personal Computer

Architetture e applicazioni web

Architetture Informatiche. Dal Mainframe al Personal Computer

Sistemi Informativi Distribuiti

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

Approccio stratificato

Sistemi informativi secondo prospettive combinate

Scenario di Progettazione

SDD System design document

Corso Web programming

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

Concetti base. Impianti Informatici. Web application

Progetto Virtualizzazione

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Tecnologia dei Sistemi Informativi. architettura s.i. 1

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

Introduzione alla Virtualizzazione

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

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

Progetto di Applicazioni Software

Progettaz. e sviluppo Data Base

Gartner Group definisce il Cloud

Architetture Applicative

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

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

Base di dati e sistemi informativi

3. I Virtual Learning Environment ovvero: le piattaforme

1. Introduzione agli ERP e a SAP

Architetture software. Virtualizzazione

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

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

7. Architetture Software

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

B.P.S. Business Process Server ALLEGATO C10

Infrastruttura di produzione INFN-GRID

1.1 Introduzione alle basi di dati

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

ELEMENTI DI PROGETTAZIONE SOFTWARE

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

Tecnologie dell informazione e della comunicazione per le aziende

Caratteristiche principali. Contesti di utilizzo

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

IT Cloud Service. Semplice - accessibile - sicuro - economico

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

Componenti Web: client-side e server-side

DBMS e Linguaggi di programmazione nell'era di Internet

Informatica Documentale

Ciclo di vita dimensionale

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

Protocolli e architetture per WIS

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

Sistemi centralizzati e distribuiti

FTP. Appunti a cura del prof. ing. Mario Catalano

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

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

2 Gli elementi del sistema di Gestione dei Flussi di Utenza

Business Intelligence

MetaMAG METAMAG 1 IL PRODOTTO

BASE DI DATI: introduzione. Informatica 5BSA Febbraio 2015

Software di base. Corso di Fondamenti di Informatica

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

WorkFLow (Gestione del flusso pratiche)

Corso di Amministrazione di Sistema Parte I ITIL 1

Distributed Training Facility

Object-Relational Mapping

Aspetti applicativi e tecnologia

Turismo Virtual Turismo Virtual Turismo Virtual

RETI INFORMATICHE Client-Server e reti paritetiche

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

Database e reti. Piero Gallo Pasquale Sirsi

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

Training sulle soluzioni SAP BusinessObjects BI4

Sistemi avanzati di gestione dei Sistemi Informativi

Automazione Industriale (scheduling+mms) scheduling+mms.

SICUREZZA INFORMATICA PER L UNIONE DI COMUNI LOMBARDA ASTA DEL SERIO

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

UML Component and Deployment diagram

Architettura SW Definizione e Notazioni

Una architettura peer-topeer per la visualizzazione 3D distribuita

IL SOFTWARE. Giada Agostinacchio Classe 2^ Beat ISIS G.Meroni Lissone Anno Scolastico 2007/2008

Ata_NiAg02. Modulo Gestione Agenti

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

Componenti di una applicazione. Un programma applicativo è strutturato come un insieme organizzato di tre componenti funzionali:

Creare una Rete Locale Lezione n. 1

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

L o. Walter Ambu japs: una soluzione agile (

SWIM v2 Design Document

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

VMware. Gestione dello shutdown con UPS MetaSystem

Navigare verso il cambiamento. La St r a d a. p i ù semplice verso il ca m b i a m e n t o

InfiXor. il programma facile e versatile per preventivi veloci e completi. il software di preventivazione per produttori e rivenditori di infissi

Cloud Computing....una scelta migliore. ICT Information & Communication Technology

1. BASI DI DATI: GENERALITÀ

Transcript:

Progetto di Applicazioni Software Antonella Poggi Dipartimento di Informatica e Sistemistica Antonio Ruberti SAPIENZA Università di Roma Anno Accademico 2008/2009 Questi lucidi sono stati prodotti sulla base del materiale preparato per il corso di Progetto di Basi di dati da D. Lembo.

1. Architetture dei Sistemi Informativi

Layer di un Sistema Informativo client presentation application logic resource management information system A livello concettuale i sistemi informativi sono progettati in termini di tre diversi componenti funzionali (livelli) 1. Presentazione 2. Logica dell applicazione 3. Gestione delle risorse 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 (client) Comprende le componenti che si occupano di presentare l informazione verso i client, e che consentono ai client di interagire con il sistema per sottomettere operazioni ed ottenere risultati I client possono essere completamente esterni ed indipendenti dal presentation : nei sistemi accessibili tramite web browser che visualizzano pagine HTML, il presentation è costituito dal web server e dai moduli che concorrono a creare i documenti HTML (ad es. Java Servlet), mentre il browser è il client In altri casi il client ed il presentation 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 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 client presentation application logic resource management information system 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 client Il 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 Client non intelligenti Bassi costi di impiego Il progettista è libero di fondere i livelli concettuali aumenta l efficienza del sistema Nessuna interfaccia nessuna complessità dovuta alla pubblicazione ed al mantenimento di interfacce, o a compatibilità fra diversi componenti Antonella Poggi Progetto di Applicazioni Software Architetture Software - 10

Architettura two-tier client presentation application logic resource management information system Il sistema informativo è partizionato tra due tier: I client 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) Il tier nel client gestisce il livello di presentazione invoca le funzionalità dell applicazione I client si dividono in Thin client (con soli compiti di presentazione) e Thick client (inglobano parte della logica dell applicazione) Antonella Poggi Progetto di Applicazioni Software Architetture Software - 11

Architettura two-tier vantaggi Permette di realizzare un architettura client/server Viene introdotto il concetto di API che facilita la comunicazione del client con l applicazione Al tempo stesso, le architetture two-tier garantiscono maggiore portabilità rispetto all architettura one-tier La capacità di calcolo del client 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 client, a causa della necessità di mantenere informazioni sulla connessione e sull autenticazione dei client I client 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 presentation 1 client application logic presentation 2 server 1 application logic resource management application logic resource management server 2 L interazione di uno stesso client con più livelli di gestione di risorse ha fatto nascere l esigenza di avere client via via più potenti, oltre che uno strato di logica applicativa per gestire l integrazione delle risorse sul client stesso Non scalabile! Antonella Poggi Progetto di Applicazioni Software Architetture Software - 14

Architettura three-tier application logic presentation resource management client middleware information system I livelli concettuali sono completamente disaccoppiati Risponde all esigenza di scalabilità integrare più server gestire più utenti Si avvale della presenza di stabili interfacce sia per il livello della logica dell applicazione che il livello della gestione delle risorse Standard Application Program Interface (API) usate per l interazione tra il livello della logica dell applicazione e il livello di gestione delle risorse 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 I client sono indipendenti gli uni dagli altri: si possono avere diversi livelli di presentazione sulla base delle esigenze di diversi client 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 due tier più semplice maggiore flessibilità maggiore scalabilità Permette di realizzare un architettura client/server 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 Per integrare sistemi su internet devono fare uso di un componente addizionale: il web server Antonella Poggi Progetto di Applicazioni Software Architetture Software - 18

Da three-tier a N-tier: il caso di Internet Web server Internet client Web browser presentation HTML filter Il livello di presentazione è più complesso: comprende un Web Server application logic resource management middleware information system Antonella Poggi Progetto di Applicazioni Software Architetture Software - 19

DBMS per la logica dell applicazione client database management system DBMS sono usati tradizionalmente per gestire i dati user defined application logic 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 three-tier, in cui i livelli concettuali di presentazione, logica dell applicazione e gestione delle risorse siano disaccoppiati Ci rifacciamo alle architetture client/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 (ad es., JDBC) 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) client Presentation Application logic Application logic Resource management information system Realizziamo semplicemente un programma in linguaggio Java che si connette al DBMS attraverso l API JDBC (Java DataBase Connectivity) 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