Architettura REST e SOA

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

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