Architettura REST e SOA
28 Questions
0 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Quale delle seguenti affermazioni descrive meglio REST?

  • Un'architettura software che specifica come i client e i server interagiscono tramite richieste e risposte. (correct)
  • Un linguaggio di programmazione utilizzato per lo sviluppo di applicazioni web.
  • Un database relazionale utilizzato per archiviare dati.
  • Un protocollo di comunicazione standardizzato per lo scambio di dati.
  • REST è indipendente dall'architettura client-server.

    False (B)

    Abbina i seguenti concetti relativi a REST con la loro descrizione:

    REST = Stile architetturale per sistemi distribuiti. Client-Server = Modello di interazione in cui un client richiede risorse a un server Standard del web = Protocolli e formati utilizzati per lo scambio di informazioni sul web.

    Qual è l'obiettivo principale di questo metodo nella gestione dei contatori?

    <p>Comunicare solamente i decrementi dei contatori per evitare race condition. (B)</p> Signup and view all the answers

    Questo metodo prevede la comunicazione sia degli incrementi che dei decrementi dei contatori.

    <p>False (B)</p> Signup and view all the answers

    Quale problema si cerca di evitare comunicando solo i decrementi dei contatori?

    <p>Race condition</p> Signup and view all the answers

    Questo metodo comunica solamente i ______ dei contatori.

    <p>decrementi</p> Signup and view all the answers

    Abbina le seguenti azioni all'obiettivo principale del metodo:

    <p>Comunicare solo i decrementi = Evitare race condition Incrementare i contatori = Nessuna relazione diretta con l'obiettivo Azzera i contatori = Nessuna relazione diretta con l'obiettivo</p> Signup and view all the answers

    Qual è uno svantaggio principale dell'utilizzo di messaggi 'find' in broadcast?

    <p>Efficienza ridotta dovuta alla necessità per tutti gli host di processare i messaggi (C)</p> Signup and view all the answers

    L'invio di messaggi 'find' in multicast comporta che tutti gli host nella rete devono processare il messaggio.

    <p>False (B)</p> Signup and view all the answers

    Come funziona il meccanismo di 'find' in broadcast in modo simile all'ARP?

    <p>Invia messaggi 'find' in broadcast e solo gli host interessati rispondono.</p> Signup and view all the answers

    Un meccanismo di invio di messaggi 'find' in ______ è simile all'ARP, in cui solo chi è interessato risponde.

    <p>broadcast</p> Signup and view all the answers

    Associa i seguenti tipi di comunicazione di rete con le loro caratteristiche:

    <p>Broadcast = Messaggio inviato a tutti gli host sulla rete. Multicast = Messaggio inviato a un gruppo specifico di host. ARP = Protocollo per la risoluzione degli indirizzi IP in indirizzi MAC.</p> Signup and view all the answers

    Quale dei seguenti è uno dei tre problemi principali discussi nel contenuto?

    <p>Sincronizzare tutti i clock con un clock globale (precisione) (B)</p> Signup and view all the answers

    Secondo il testo, rispettare la monotonia del tempo significa che è possibile tornare indietro nel tempo.

    <p>False (B)</p> Signup and view all the answers

    Quale tecnologia viene menzionata come possibile metodo per la localizzazione dei PC?

    <p>GPS</p> Signup and view all the answers

    Uno dei problemi discussi è la sincronizzazione di tutti i clock tra di ______.

    <p>loro</p> Signup and view all the answers

    Abbina i seguenti concetti con la loro descrizione appropriata:

    <p>Accuracy = Sincronizzare tutti i clock con un clock globale Agreement = Sincronizzare tutti i clock tra di loro Monotonia del tempo = Non si può andare indietro nel tempo</p> Signup and view all the answers

    Quale dei seguenti è un requisito del virtual synchrony?

    <p>Risolvere il problema dell'atomic multicast. (D)</p> Signup and view all the answers

    Il virtual synchrony è il modello più forte di multicast affidabile.

    <p>False (B)</p> Signup and view all the answers

    Quale problema è in grado di risolvere il virtual synchrony?

    <p>atomic multicast problem</p> Signup and view all the answers

    Il virtual synchrony è una forma di multicast ______.

    <p>affidabile</p> Signup and view all the answers

    Associa i seguenti termini con la loro descrizione corretta:

    <p>Virtual Synchrony = Modello di multicast affidabile Atomic Multicast Problem = Problema risolto dal virtual synchrony Affidabilità = Caratteristica principale del virtual synchrony</p> Signup and view all the answers

    Quale delle seguenti affermazioni descrive meglio la consistenza sequenziale?

    <p>Le operazioni di tutti i processi sono eseguite in un ordine sequenziale, e le operazioni di ogni processo appaiono in questa sequenza nell'ordine specificato dal suo programma. (C)</p> Signup and view all the answers

    Nella consistenza sequenziale, ogni processo può avere una visione diversa dell'ordine delle operazioni.

    <p>False (B)</p> Signup and view all the answers

    Nella consistenza sequenziale, su cosa si accordano tutti i processi?

    <p>Su una sequenza di operazioni.</p> Signup and view all the answers

    Nella consistenza sequenziale, le operazioni di ogni processo appaiono nella sequenza nell'ordine specificato dal suo ______.

    <p>programma</p> Signup and view all the answers

    Abbina i seguenti concetti con la loro descrizione nella consistenza sequenziale:

    <p>Ordine Sequenziale = Operazioni eseguite in un ordine globale coerente. Ordine del Programma = Sequenza delle operazioni specificata all'interno del codice di un processo. Accordo tra Processi = Tutti i processi condividono la stessa visione dell'ordine delle operazioni.</p> Signup and view all the answers

    Flashcards

    REST

    REST (REpresentational State Transfer) è un’architettura per lo sviluppo di servizi web.

    SOA

    SOA (Service-Oriented Architecture) è un'architettura software basata su servizi connessi.

    Client-Server

    Il modello Client-Server è una struttura in cui un client richiede risorse a un server.

    Standard del web

    Regole e protocolli utilizzati per la comunicazione su Internet.

    Signup and view all the flashcards

    Architettura

    L'architettura in informatica si riferisce alla struttura e organizzazione di un sistema.

    Signup and view all the flashcards

    Clock globale

    Un orologio di riferimento per sincronizzare altri orologi.

    Signup and view all the flashcards

    Sincronizzazione degli orologi

    Coordinatione dei clock tra diversi dispositivi.

    Signup and view all the flashcards

    Accuratezza (accuracy)

    Precisione nel tempo di un singolo clock rispetto a un riferimento.

    Signup and view all the flashcards

    Monotonia del tempo

    Principio che impedisce di tornare indietro nel tempo.

    Signup and view all the flashcards

    GPS nella localizzazione

    Tecnologia per determinare la posizione di un computer tramite segnale satellitare.

    Signup and view all the flashcards

    Race condition

    Situazione in cui più processi competono per risorse condivise, causando risultati imprevisti.

    Signup and view all the flashcards

    Decremento dei contatori

    Riduzione del valore di un contatore, spesso utilizzato per gestire il numero di risorse disponibili.

    Signup and view all the flashcards

    Comunicazione

    Scambio di informazioni tra processi o thread per evitare conflitti.

    Signup and view all the flashcards

    Metodo di naming

    Tecnica per identificare risorse o processi in modo univoco.

    Signup and view all the flashcards

    Evita condizioni di corsa

    Strategia per prevenire situazioni di conflitto tra processi attraverso una gestione efficace delle operazioni.

    Signup and view all the flashcards

    Simile all’ARP

    Metodo di invio messaggi 'find' in broadcast, dove solo gli host interessati rispondono.

    Signup and view all the flashcards

    Svantaggio del broadcast

    Efficienza ridotta poiché tutti gli host devono elaborare i messaggi.

    Signup and view all the flashcards

    Multicast

    Metodo di comunicazione simile al broadcast, ma i messaggi sono inviati solo a un sottogruppo di host.

    Signup and view all the flashcards

    Differenza tra broadcast e multicast

    Nel broadcast tutti ricevono il messaggio, nel multicast solo alcuni selezionati.

    Signup and view all the flashcards

    Efficienza del multicast

    Maggiore efficienza rispetto al broadcast poiché riduce il carico su host non interessati.

    Signup and view all the flashcards

    Virtual Synchrony

    Modello di multicast affidabile che risolve l'atomic multicast problem.

    Signup and view all the flashcards

    Atomic Multicast Problem

    Problema che riguarda l'invio di messaggi in modo atomico a più destinatari.

    Signup and view all the flashcards

    Requisiti di Virtual Synchrony

    Tre requisiti fondamentali che definiscono il funzionamento di Virtual Synchrony.

    Signup and view all the flashcards

    Multicast Affidabile

    Tecnica di comunicazione in cui i messaggi sono inviati a più destinatari contemporaneamente, garantendo l'integrità.

    Signup and view all the flashcards

    Modello più debole

    Un approccio meno rigoroso rispetto a modelli precedenti, come Virtual Synchrony.

    Signup and view all the flashcards

    Coerenza sequenziale

    Un modello di coerenza in cui le operazioni sembrano eseguirsi in un unico ordine sequenziale.

    Signup and view all the flashcards

    Processi

    Entità che eseguono operazioni e gestiscono dati nelle applicazioni.

    Signup and view all the flashcards

    Operazioni

    Azioni eseguite dai processi, come letture o scritture di dati.

    Signup and view all the flashcards

    Ordine specificato

    La sequenza in cui ogni processo esegue le sue operazioni.

    Signup and view all the flashcards

    Accordo tra processi

    Quando tutti i processi si allineano su un'unica sequenza di operazioni.

    Signup and view all the flashcards

    Study Notes

    Architetture Software

    • Le architetture basate su network si caratterizzano per la comunicazione diretta tra le macchine, senza routing (comunicazioni su un singolo hop).
    • Esempi di architetture basate su network sono Linux/Windows + UDP/TCP.
    • Le architetture basate su middleware forniscono servizi di comunicazione e coordinamento più semplici ad alto livello rispetto agli scambi di messaggi UDP/TCP, come ad esempio RMI (sincrono).

    Architetture Run-Time

    • L'architettura run-time descrive come la computazione è distribuita nelle diverse macchine e come esse collaborano, comunicano e si coordinano.
    • L'architettura client-server è la più comune. I server attendono le richieste di servizio dei client e le soddisfano. Possono esistere più livelli tra client e server(multi-tiered) come ad esempio il web.
    • L'architettura service oriented (SOA) è un caso particolare del client-server in cui l'interazione non avviene tramite messaggi, ma mediante invocazione di servizi. Il servizio è il centro di questa architettura, descritto da un contratto che ne definisce le operazioni. Il service broker funge da intermediario tra il fornitore di servizio e il consumatore di servizio, fungendo da sorta di DNS per le applicazioni. Esempi di utilizzo: Web service.

    REST e Peer-to-Peer

    • REST (REpresentational State Transfer) è un'evoluzione di SOA, che utilizza gli standard del web. Le risposte del server sono indipendenti dallo stato del server, dipendendo solo dalla richiesta del client. Garantisce scalabilità grazie al caching.
    • Svantaggi: il costo è “appioppato” al client, che di solito ha meno potenza del server.
    • Peer-to-Peer (P2P): è un'architettura senza distinzione tra client e server. I componenti sono chiamati “peer”, e collaborano tra loro direttamente, senza un server centrale. Ad esempio: skype.

    Object Oriented

    • L'architettura object oriented utilizza oggetti remoti che incapsulano dati e fornendo un'API per accedervi e modificarli. Gli oggetti possono essere implementati in linguaggi diversi. Vantaggio: incapsulation per gestire la complessità nell'accesso e gestione dei dati.

    Data Centered

    • L'architettura data centered utilizza un componente centralizzato (repository) come mediatore per le interazioni tra i diversi componenti.

    Event Based

    • L'architettura event based permette un'interazione indiretta tra componenti. Si basa su messaggi, e permette ai componenti di pubblicare notifiche su eventi osservati e di iscriversi per ricevere notifiche su eventi. E' un modello aciclico, basato su messaggi. Esempi: assincrono, multicast, implicito.

    Mobile Code

    • L'architettura mobile code introduce la possibilità di rilocazione di codice durante l'esecuzione. I paradigmi includono, Remote evaluation, code on demand, mobile agent.

    Interaction Model

    • Descrive come eventi, passaggi richiesti, e messaggi vengono scambiati tra i processi di un sistema distribuito. Include i sistemi synchronous e asynchronous, con implicazioni sulla velocità e tempo di esecuzione.

    Failure Model

    • Descrive i modi in cui i processi e i canali di comunicazione possono fallire e i differenti tipi di failure (omission, byzantine, timing).

    Comunicazione a Livelli

    • La comunicazione tra i processi in un sistema distribuito può essere realizzata tramite protocolli a livelli, come il modello OSI o TCP/IP, che gestiscono diversi aspetti della comunicazione (fisico, link, rete, trasporto, presentazione, applicazione). I livelli gestiscono le regole per una specifica parte della comunicazione.

    Tipi di Comunicazione

    • Transient: entrambi i processi sono attivi durante la comunicazione (es. chiamata telefonica).
    • Persistent: non è necessario che entrambi i processi siano attivi (es. email).
    • Sincrona: necessaria una forte sincronizzazione tra i processi.
    • Asincrona: non è richiesta una sincronizzazione tra i processi (es. UDP).
    • Remote Procedure Call (RPC): simula una chiamata a procedura standard su una rete.

    Remote Method Invocation (RMI)

    • RMI è una forma di RPC per applicazioni distribuite.
    • I parametri possono essere passati per valore, per riferimento o per copia/ripristino.

    Naming

    • I nomi vengono utilizzati per identificare le entità nei sistemi distribuiti (es. host, file, server). Un indirizzo è un nome speciale di un entità, esempio : ip del web server.
    • Esistono diversi modi per risolvere i nomi nel nome space.
    • Simple solutions (es: broadcast)
    • Multicast
    • Forwarding pointers
    • Distributed Hash Tables (DHT)
    • Hierarchical approaches

    Sincronizzazione

    • Come gestire la sincronizzazione delle operazioni e dei componenti nei sistemi distribuiti, in assenza di un clock globale e di una memoria condivisa.
    • Metodi:
    • Sincronizzazione dei clock fisici
    • Logical clocks (es.: Lamport clock, Vector clocks)
    • Remote procedure call (RPC)

    Fault Tolerance

    • Meccanismi di tolleranza ai guasti per proteggere un sistema da fallimenti di componenti o comunicazione.
    • Tipi di guasti: Transitori, intermittenti, permanenti.
    • Tecniche per la tolleranza al guasto: ridondanza delle informazioni e dei processi, timeouts, meccanismo di quorum per decidere il comportamento in caso di fallimento.

    Replication and Consistency

    • Gestione di copie di dati in più posizioni per ottimizzare performance, tolleranza al guasto e dislocazione geografica.
    • Tipi di consistenza: Sequential, Causal, Eventual.

    Data Analytics

    • Piattaforme distribuite per l'analisi dei dati e i Big Data.
    • Tecnologia di MapReduce: per il parallelismo delle operazioni.
    • Tecnologie di Apache Spark, e Apache Flink per lo scheduling e la gestione dei lavori.
    • Gestione della load balancing, e della fault tolerance.

    P2P

    • Peer-to-peer: sistemi distribuiti senza un server centrale. Ad esempio: Gnutella, KaZaA, BitTorrent.
    • Considerazioni sulla decentralizzazione, le diverse topologie, il routing e sicurezza.

    Studying That Suits You

    Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

    Quiz Team

    Related Documents

    Description

    Questo quiz esplora i concetti chiave riguardanti REST e la sua connessione all'architettura SOA. Testa la tua comprensione dei metodi di comunicazione e degli obiettivi principali di REST. Rispondi a domande specifiche per verificare le tue conoscenze su questo importante argomento della tecnologia web.

    More Like This

    EIST  Quiz REST Architecture and Strangler Pattern
    69 questions
    REST Architectural Style Quiz
    40 questions
    Services Web REST
    42 questions

    Services Web REST

    AppreciableCedar4152 avatar
    AppreciableCedar4152
    REST and GraphQL Concepts Quiz
    56 questions

    REST and GraphQL Concepts Quiz

    GallantChalcedony2154 avatar
    GallantChalcedony2154
    Use Quizgecko on...
    Browser
    Browser