La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Architetture software

Presentazioni simili


Presentazione sul tema: "Architetture software"— Transcript della presentazione:

1 Architetture software

2 Multi- tier (multi strato)
Multi-tier è un nome che significa architetture «multi livello» come lo è per esempio lo standard ISO/OSI od il TCP/IP. In queste architetture il software è realizzato in più livelli indipendenti tra loro ma in grado di collaborare. L’architettura TCP/IP ha 5 livelli (fisico, datalink, network, transport, application). Quella ioso/osi ne ha 7.

3 Multi- tier (multi strato)
Un’architettura multi livello è utile anche per i database. Livello fisico: gestisce i file su disco. Livello logico: gestisce le tabelle relazionate tra loro. Livello interfaccia: si occupa della presentazione delle informazioni.

4 Multi- tier (multi strato)
Ogni livello è indipendente dall’altro. Ogni livello può dare informazioni ad un altro e riceverne da altro ancora. Indipendenza è detta logica se è possibile modificare il livello logico (2) senza avere ripercussioni sugli altri. Indipendenza è detta fisica se è possibile modificare la posizione dei file ed i tipi di dati senza intaccare la struttura logica.

5 Architetture software n-tier
Anche i software si possono organizzare a livelli. Questi livelli dialogano direttamente con quelli adiacenti (come in iso/osi). Ogni livello è indipendente e vede sotto di se macchine virtuali evolute. Si dice parla in particolare di Layer o Tier se: Architettura N-tier  indipendenza fisica Architetture N-layer  indipendenza logica.

6 Applicazione con DB accessibile da utenti esterni (da remoto)
Presentazione : il software di livello più esterno che si occupa di presentare visivamente i dati agli utenti (report, query e loro forma grafica). Logico: software che prende a carico le richieste utente date a livello 1 e produce risultati da restituire a livello 1. qui risiedono funzioni, dati, relazioni. Fisico: il software che organizza i dati su supporto di massa.

7

8 Anni 1980 : struttura 1-tier Software
Tutti e tre i livelli sono implementati nello stesso software I tre livelli sono intrecciati e non indipendenti. Problemi: scalabilità, portabilità, manutenzione. Software Presentazione Logico Fisico Db

9 Anni 1990 : struttura 1-tier Problemi:
Scalabilità: è difficile fare upgrade del software ed è difficile migliorare le prestazioni se si lavora su macchina unica. Portabilità: cambiare macchina o SO significa dover, quasi sempre, riscrivere gran parte del codice, anche alcune parti relative alla presentazione o gestione logica del database. Manutenzione: la modifica di un componente, quasi sempre, si ripercuoteva su modifiche agli altri.

10 Anni 1990 : struttura 2-tier È la Architettura Client – Server tipica degli anni 1990 Il livello fisico è indipendente dal livello logico e di presentazione. Server Client Presentazione Logico Fisico Db

11 Architettura Client – Server tipica degli anni 1990
Il server Architettura Client – Server tipica degli anni 1990 In questo modo il livello fisico (o dati) si può spostare su un calcolatore dedicato dove gira un software detto «server» insieme agli archivi che contengono i dati. Server Fisico Db

12 Il client Client Architettura Client – Server tipica degli anni 1990
Restano i problemi di scalabilità, manutenzione e portabilità per i primi due livelli Client Presentazione Logico

13 Anni 2000 : struttura 3-tier Client Server DB server
Nasce per applicazioni sul web in un tempo in cui il modulo di interfaccia diventa di fondamentale importanza ed è oggetto di continui e frequenti aggiornamenti. Client Server DB server Presentazione Logico Fisico Db

14 Anni 2000 : struttura 3-tier Client Server DB server
I 3 moduli software sono indipendenti tra loro. In questo caso esiste un DB Server e quindi le macchine possono essere 3 con un software che gira su ciascuna. Client Server DB server Presentazione Logico Fisico Db

15 3 - tier

16 Architetture attuali N-tier
Dal modello Client – Server – DB Server si è passati ad un modello con oltre 3 moduli/livelli software indipendenti. Tipicamente abbiamo i seguenti livelli: Networking : il modulo o livello che si occupa della interconnessione tra i sistemi. Security: il modulo o livello che si occupa della sicurezza dei dati e dei sistemi. Data storage: il livello addetto alla gestione archivi di dati. User interface: il livello più friendly, rivolto all’utente.

17 Architetture attuali N-tier
4 Networking : il modulo o livello che si occupa della interconnessione tra i sistemi. Security: il modulo o livello che si occupa della sicurezza dei dati e dei sistemi. Data storage: il livello addetto alla gestione archivi di dati. User interface: il livello più friendly, rivolto all’utente. 3 2 1

18 Architetture 3-tier per il web
Per le applicazioni web ed in particolare per le applicazioni di e- commerce è utilizzata una architettura a 3 livelli. Presentazione: il front end generato staticamente o dinamicamente che viene visualizzato dal browser sul computer client. 2 1

19 Architetture 3-tier per il web
2 - Logico: software generatore del contenuto dinamico. Questa attività è gestita da un Apllication Server (Java EE, ASP.net, PHP, ColdFusion), riceve le richieste dal lato front-end, le elabora per fornire poi le se necessita di dati ne fa richiesta a livello 3. risposte. 2 1

20 Architetture 3-tier per il web
3 – Dati/fisico: detto back-end, comprende l’archivio dati, il software DBMS (database management system). 2 1

21 Architetture 3-tier per il web
Schema tipico a 3 livelli per applicazioni web. Il dialogo fra le componenti avviene secondo il modello Client – Server. Livello Interfaccia è client di Livello Logico. Livello Logico è client di Livello Dati/fisico. Tipicamente: Web server e DBMS sono sulla stessa macchina. Front-end è sulla macchine utente.

22 Architetture 3-tier per il web
Vantaggi della divisione dei software e macchine: Facile manutenzione. Riusabilità Sviluppo + veloce Web Software Database Designer Engineer Administrator

23 S O A Service Oriented Architecture Architetture basate sui servizi

24 S.O.A. Cosa è? Una architettura software è un modo disegnare ed organizzare programmi complessi. La Service Oriented Architecture è un’architettura per costruire servizi sul web o su rete. SOA utilizza una logica orientata ai servizi, questo vuol dire che il sistema software è in realtà organizzato in «sottoprogrammi» detti «servizi» richiamabili dai programmi all’occorrenza. Fonte IBM:

25 S.O.A. Cosa è? Invece di implementare tali procedure tutte nel programma principale, le si scrive e le si richiama solo all’occorrenza. SOA decompone le singole applicazioni in funzioni elementari riutilizzabili, chiamati servizi. SOA deve supportare le esigenze degli utenti e dei loro Client. Fonte IBM:

26 SOA: interfacce I Client richiamano i servizi utilizzando interfacce «pubbliche» standard, indipendenti dal hardware e software presenti sulla rete aziendale. Questo sistema è utilizzato molto in ambito aziendale (enterpise) Usa la Intranet ed Internet.

27 Le 3 componenti di SOA Soa viene realizzato implementando 3 cose:
I servizi. Sono procedure, codici disponibili in rete che implementano certi servizi (pagamenti, carrello spesa, carte di credito…) e sono utilizzabili attraverso le loro interfacce. Un registro. Un servizio che gestisce i servizi, li archivia, ne consente la scoperta da parte dei client. I client. Sono i software sui terminali in rete che accedono ai servizi suddetti.

28 Le 3 componenti di SOA Soa viene realizzato implementando 3 cose: I client. I servizi. Un registro.

29 Loosely coupled SOA è una architettura «debolmente accoppiata» vuol dire che i servizi girano su macchine e SO diversi e indipendenti tra loro ma sono tutti egualmente e facilmente accessibili da ogni Client. Utilizza poi protocolli standard, già utilizzati per le reti informatiche. Usa dei meccanismi che: Permettono ai Client di accedere ai Servizi ed ai Registri Ai Registri di recepire la presenza di nuovi Servizi. Ai Servizi di avere interfacce semplici per i Client.

30 I Web Service Alla base delle architetture SOA ci sono i Web Service.
secondo la definizione data dal W3C (World Wide Web Consortium), un Web Service (servizio web), è un «sistema software progettato per supportare l'interoperabilità tra diversi elaboratori su di una medesima rete ovvero in un contesto distribuito».

31 Web Service La struttura fondamentale dei Web Service prevede 3 tipi di linguaggi: HTTP / SOAP Protocolli di comunicazione. WSDL : Linguaggio di descrizione del servizio. UDDI : Catalogazione e scoperta dei servizi. Piattaforme per lo sviluppo di WS: Java Enterprise Edition (Open source). Dot Net (Microsoft) (Proprietaria).

32 Soap: protocollo per SOA
SOAP è il protocollo su cui si basano i servizi Web, I messaggi Soap sono scritti in linguaggio XML (eXtensible Markup Language) un linguaggio multipiattaforma. Permette ai Client di richiedere un Servizio presente in rete e di richiamare i «metodi» del Servizio.

33 WSDL: descrizione dei servizi
È un linguaggio utilizzato per descrivere un documento che viene «pubblicato» in rete dove cè indicato cosa fa e come si usa un Web Service. Il documento in WSDL ti dice dove si trovano i Web Service. Ed i metodi che esso rende disponibili (le funzionalità).

34 .NET (Microsoft) È un ambiente proprietario di Microsoft che consente di creare questi Servizi sulla rete. Usa la tecnologia ASP.net. Con ASP.net non è necessario scrivere i documenti WSDL e SOAP in quanto viene fatto in automatico. Microsoft Visual Studio crea facilmente dei «form» sulle vostre pagine o applicazioni web con cui accedere ai servizi desiderati.

35 Java Enterprise Edition platform
È un ambiente Open Source che consente di realizzare applicazioni web (web service) utilizzando Java. Come per ogni app Java JEE fornisce la Java Virtual Machine (JVM) e una Application Programming Interface (API). Consente lo sviluppo di applicazioni multi tier.

36 Java Enterprise Edition platform
Web service: le componenti fornite da Java EE sono: JAX-WS: per web service molto complessi. JAX-RS: pre web service leggeri per PDA o cellulari. Web application. Le componenti che Java usa per costruire applicazioni sul web sono: Servlet e Jsp.

37 Application Server Una A.S. si localizza nello stadio «Bussiness Tier» o «Logic Tier» e quindi fa da tramite tra «Data Tier» e «Presentation Tier». Un A.S., nel caso dei siti e-commerce, è realizzato per fornire questi servizi: Ricerca informazioni Gestione carrello spesa. Elaborazione dati carte di credito. Esistono A.S. «open source» ed altri «proprietari». Presentazione A.S. Bussiness/logico Dati/fisico


Scaricare ppt "Architetture software"

Presentazioni simili


Annunci Google