Componenti di una applicazione Un programma applicativo è strutturato come un insieme organizzato di tre componenti funzionali: Un sottosistema di interfaccia con l utente (IU, user interface o anche presentation layer) incaricato di controllare i comandi e i dati che l utente fornisce come input e di presentare come output i risultati dell esecuzione del programma. Un sottosistema di logica applicativa ( LA, business logic layer) che implementa gli specifici algoritmi di manipolazione dei dati che caratterizzano l applicazione. Un sottosistema di gestione dei dati ( GD, data layer) che si occupa dell organizzazione dei dati, della loro memorizzazione e del loro reperimento efficiente
Esempio: Microsoft Word IU: finestre, icone, menù. LA: formattazione dei caratteri, ricerche e sostituzioni, controllo dell ortografia GD: testi che vengono scritti, modelli, dizionari.
Indipendenza concettuale ed implementazione. Es. sistemi monolitici con sottosistemi IU e GD realizzati ad hoc in funzione di LA (anni ottanta). Problemi per lo sviluppo: necessità di riprogettare IU e GD per ogni applicazione. Problemi per l utente: necessità di utilizzare interfacce diverse. Problemi con GD: accessibilità ai dati solo attraverso il programma che li ha immessi.
Il sottosistema IU- Intefaccia Utente Interfaccia a linea di comando conta1 conta il numero di occorrenze di un carattere all interno di una stringa. Se viene specificato il terzo argomento, il conteggio viene effettuato senza distinguere tra maiuscole e minuscole. Uso: conta1 -c<carattere> -s <stringa> [-m] < > testo variabile [..] testo opzionale >conta1 -ce -s E l esempio di un programma Numero di occorrenze: 2
1. l utente specifica tutti i parametri di input e mette in esecuzione il programma; 2. Il programma viene eseguito: 3. Il risultato prodotto viene presentato all utente come output del programma. 4. L esecuzione termina. L interfaccia gestisce l interazione con l utente in modo integrato (interfaccia di tipo batch)
>conta 2 Conta il numero di occorrenze all interno di una stringa Carattere: a Stringa: Ancora una prova Distinguere tra minuscole e maiuscole <S/N>? N Numero di occorrenze: 4
Interfacce interattive modali 1.L utente mette in esecuzione il programma 2. Il programma attiva una sessione domande-risposte per ottenere dall utente i parametri di input 3. Viene eseguita la parte del programma che opera sui parametri di input per ottenere il risultato 4. Il risultato ottenuto viene presentato all utente come output del programma; l esecuzione termina. In ogni istante l utente non può che rispondere alla domanda che gli è posta, disponendo al più dell opzione per interrompere il dialogo (es. ESC).
Interazione non modale. 1. L utente mette in esecuzione il programma 2. Il programma attiva un interfaccia utente interattiva non modale e si mette in condizione di ascolto 3. Fino a che l utente non seleziona il pulsante per terminare l esecuzione del programma: a. L utente immette i parametri b. L utente seleziona il pulsante che mette in esecuzione la parte di programma che opera sui parametri di input per ottenere il risultato c. Il risultato ottenuto viene mostrato all utente 4. l esecuzione termina
Caratteristiche dell interfaccia interattiva non modale Maggiore complessità. Condizione di ascolto del programma in cui gestisce gli eventi di interfaccia utente che l utente genera Presentazione dello stato dell esecuzione. Il pulsante che attiva il conteggio potrebbe essere mantenuto disattivo (non selezionabile) fino a che entrambe le caselle di testo non sono state compilate. Molteplicità negli strumenti di input. Stessa funzionalità acquisibile in modi diversi(es. Ctrl-c, menù Modifica e voce copia, tastiera o mouse, etc..). In futuro: voce, riconoscimento testo scritto a mano. Stile d uso dell utente.
Numerosità delle funzioni. Es. Microsoft Word (alcune centinaia di funzioni). Interfacce consistenti Accesso a funzioni analoghe in modo analogo (minimizzare lo sforzo cognitivo dell utente) Sistemi GUI (Graphical User Interface). Introdotta da APPLE con il Macintosh, 1984.( Es. X-Windows, ambiente Unix-Linux, Microsoft Windows). Widget (window object). Elementi di una finestra (barra del titolo, menu, barre di scorrimento, pulsanti,..) con un estetica riconoscibile cui corrispondono funzioni ormai uniformi (standard)
Sottosistema GD-gestione dei dati DBMS (Data Base Management System).Una tecnologia consolidata per la gestione di dati persistenti (cioè che devono essere mantenuti in modo permanente e non solo durante la esecuzione del programma): efficiente memorizzazione ed accesso a grandi quantità di dati. Basati sul modello relazionale: Oracle, SQL Server, DB2, Informix, Access. Caratteristica: interfaccia comune per la definizione della struttura del DB, l amministrazione del DB stesso e l accesso ai dati, ottenuta con l impiego del linguaggio SQL. OLE DB (legato al mondo Windows), JDBC(legato al mondo Java): interfacce di programmazione che consentano di accedere con la stessa logica tabellare non solo ai dati contenuti in DBMS, ma anche a file sequenziali, a fogli di calcolo (spreadsheet), a liste di messaggi di posta elettronica.
Applicazioni come sistemi Obiettivo: riutilizzo del codice Libreria di sottoprogrammi:contiene programmi utilizzabili da altri programmi dopo aver importato la libreria nel programma. API (Application Program Interface) : documentazione della semantica e della sintassi dei vari sottoprogrammi inclusi nella libreria
Descrizione dell interfaccia per un sottoprogramma che determina il giorno della settimana corrispondente ad una data: intestazione Semantica Sintassi Giorno della settimana Fornisce in output il giorno della settimana corrispondente alla data indicata in input Uso: stringa= GiornodellaSettimana (data) Esempio: x= giorno della settimana ( 19.08.2004 ) if x= domenica then print Buona domenica
Linguaggi orientati agli oggetti ( object oriented ). Librerie come alberi di classi, cioè insieme di classi, ciascuna con metodi e proprietà, strutturate secondo la relazione di ereditarietà. Linguaggio Java (C++) caratterizzato da un ricchissimo insieme di librerie. Possibilità di costruire i programmi in forma modulare, come sistemi che assemblano in modo organico componenti definite. Early binding: collegamento dei componenti richiesti al programma principale al momento della generazione del codice. Late binding: collegamento dei componenti richiesti al programma principale al momento dell esecuzione
Applicazioni come sistemi distribuiti I sottosistemi di un applicazione( IU,LA,GD) possono essere residenti ed eseguiti su calcolatori diversi. Modello client- server. Se l utente opera con un calcolatore ( PC, palmare, telefono cellulare) connesso alla rete, l unico sottosistema che deve essere eseguito localmente è IU (componente client dell applicazione). LA e GD (componente server dell applicazione) possono risiedere ed essere eseguiti su un calcolatore remoto connesso alla rete.
client richiesta risposta server
Vantaggi dell architettura C/S L utente si deve preoccupare solo della parte IU. I problemi relativi ad LA (es. aggiornamento dei programmi) e GD (es. procedure necessarie per garantire la sicurezza ed integrità dei dati) sono delegati ad altri. Possibilità di condivisione di servizi applicativi e dati da parte di più client che possiedono l apposito sistema IU e che sono autorizzati ad accedervi.
Esempio Applicazione per effettuare la somma di due numeri. 1. Interagendo con il client l utente specifica due numeri. 2. Il client attiva la richiesta al server, passandogli i due numeri come parametri. 3. Il server riceve la richiesta ed attiva il sottoprogramma sommatore, passandogli i due parametri ricevuti. 4. Il sottoprogramma sommatore produce il risultato e lo rende disponibile. 5. Il server invia tale risultato come risposta al client. 6. Il client riceve la risposta e ne visualizza il contenuto per l utente.
Protocollo di applicazione Insieme di regole stabilite convenzionalmente per consentire il dialogo tra client e server. Esempio precedente: il protocollo deve specificare: -il formato con cui il client deve inviare i due numeri da sommare (potrebbero essere separati da un carattere speciale, es. +) -il formato con cui il server deve inviare il risultato al client
Architettura Client/Server Architettura a due livelli LA e GD costituiscono il componente server, mentre IU è la componente client (sistema C/S a due livelli con client magro ) IU e LA costituiscono la componente client (sistema C/S a due livelli con client grasso ). LA è suddivisa tra client e server (sistema client server a due livelli con soluzione mista). Architettura a tre livelli LA è situata su un server dedicato (application server).