Argomento 6: procedure-call communication Flashcards

1
Q

Perché in Java è necessario serializzare gli oggetti per poterli passare come parametro?

  1. Per renderli compatibili al formato in byte di TCP/IP
  2. Perché così sono conformi al modello a stack della memoria della virtual machine
  3. Perché le classi sono in formato bytecode
  4. Per renderli compatibili al formato a pacchetti di TCP/IP
A
  1. Per renderli compatibili al formato in byte di TCP/IP
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Quale è il compito della serializzazione (serialization) in Java RMI?

  1. Permettere di passare gli oggetti remoti come parametro
  2. Permettere di passare gli oggetti locali come parametro
  3. Permettere di ricevere sequenze di oggetti via FTP/IP
  4. Permettere di spedire sequenze di oggetti via FTP/IP
A
  1. Permettere di passare gli oggetti locali come parametro
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Perché non si usano i puntatori nei sistemi distribuiti JavaRMI?

  1. Per disaccoppiare meglio ambienti dei processi coinvolti
  2. Perché si usano i reference, che sono dei puntatori con altro nome
  3. Perché non si possono conoscere le allocazioni di memoria di un altro processo
  4. Per aumentare le performance
A
  1. Perché non si possono conoscere le allocazioni di memoria di un altro processo
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Quali metodi dell’interfaccia Serializable è obbligatorio implementare?

  1. Nessuno, Serializable è una classe marker, non è obbligatorio implementare
    alcun metodo
  2. È obbligatorio implementare i metodi onSerialization e onDeserialization, che vengono invocati al memento della serializzazione e deserializzazione, tali metodi descrivono come vengono serializzati e deserializzati gli oggetti
  3. È obbligatorio implementare i metodi readObject e writeObject per ogni oggetto utilizzato nella classe
  4. Nessuno, ma se all’interno della classe che implementa Serializable sono presenti
    oggetti di altre classi non serializzabili Java ritornerà errore di compilazione
A
  1. Nessuno, Serializable è una classe marker, non è obbligatorio implementare
    alcun metodo
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Dove risiede l’RMI Registry?

  1. Sulla macchina del client che accede agli oggetti che gestisce
  2. Sulla macchina dove risiedono gli oggetti che gestisce
  3. Su una qualsiasi macchina in rete LAN dove risiedono gli oggetti che gestisce
  4. Su una qualsiasi macchina in rete Internet
A
  1. Sulla macchina dove risiedono gli oggetti che gestisce
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Quale tra queste affermazioni riguardanti gli attributi “transient” è vera?

  1. Definire un attributo “transient” equivale a definirlo serializzabile, senza dover modificare la sua classe
  2. Gli attributi definiti “transient” vengono ignorati al momento della serializzazione/deserializzazione, non vengono quindi salvati i loro valori
  3. Solo i tipi primitivi possono essere definiti “transient”, i tipi non primitivi sono definiti “transient” di default
  4. Se si esegue la serializzazione in presenza di attributi “transient” Java lancia l’eccezione “NotSerializableException” in quanto non è possibile serializzare attributi transient
A
  1. Gli attributi definiti “transient” vengono ignorati al momento della serializzazione/deserializzazione, non vengono quindi salvati i loro valori
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Cosa vuol dire “transient” nel processo di serializzazione degli oggetti?

  1. Significa che una variabile specifica nell’oggetto da serializzare non verrà inizializzata
  2. |non abbiamo altre opzioni|
A
  1. Significa che una variabile specifica nell’oggetto da serializzare non verrà inizializzata
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Quale di queste informazioni è falsa? L’impostazione degli standard di HTML, DOM o
CSS… |(la risposta non è esattamente uguale, ma il senso è quello)|

  1. Chi fa la struttura deve sapere anche lo stile
  2. |non abbiamo altre opzioni|
A
  1. Chi fa la struttura deve sapere anche lo stile
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

In Java/RMI l’access transparency viene realizzata attraverso. . .

  1. L’utilizzo di sintassi esplicita per accedere agli oggetti remoti
  2. L’utilizzo di sintassi che fa riferimento all’interfaccia Remote
  3. L’utilizzo del Registry per ottenere i riferimenti agli oggetti remoti
  4. L’utilizzo della stessa sintassi per accedere a oggetti locali e remoti
A
  1. L’utilizzo della stessa sintassi per accedere a oggetti locali e remoti
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Quali sono le informazioni NECESSARIE contenute in un reference in Java-RMI?

  1. Id del metodo e argomenti
  2. |non abbiamo altre opzioni|
A
  1. Id del metodo e argomenti
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

A cosa serve la serializzazione in Java-RMI?

  1. Per trasmettere sulla rete oggetti remoti
  2. Per rendere gli oggetti locali compatibili con qualsiasi formato
  3. Per trasmettere sulla rete oggetti locali.
A
  1. Per trasmettere sulla rete oggetti locali.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

È possibile utilizzare JSON per inviare oggetti Java?

  1. No, perché non sono serializzabili e quindi non inviabili in rete
  2. No, perché non è possibile rappresentare l’intero oggetto
  3. Si, perché permette di descrivere l’intero oggetto
  4. Si, perché è serializzabile
A
  1. No, perché non è possibile rappresentare l’intero oggetto
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Un’istruzione in Java:

  1. Di norma non si deve considerare atomica ma composta da operazioni base interrompibili dallo scheduler
  2. Può essere resa atomica mediante synchronized
  3. In alcuni casi, per esempio gli incrementi e decrementi di variabile, è atomica
  4. In alcuni casi pur non essendo atomica è composta da un numero talmente esiguo di
    istruzioni da poter essere considerata tale;
A
  1. Di norma non si deve considerare atomica ma composta da operazioni base interrompibili dallo scheduler
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Quale delle seguenti affermazioni è corretta a proposito della comunicazione tra client e server?

  1. Il server usa un InputStream per ricevere dati dal client, e il client usa un OutputStream per dare informazioni al server
  2. Il server e il client hanno “due connessioni”, una per leggere e l’altra per scrivere
  3. Il server usa un OutputStream per ricevere dati dal client, e il client usa un InputStream per dare dati al server
  4. Il server e il client hanno entrambi un InputStream e un OutputStream
A
  1. Il server e il client hanno entrambi un InputStream e un OutputStream
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Con il termine Asynchronous RCP si intende che:

  1. Il server restituisce il controllo alla ricezione della richiesta
  2. Il server non si blocca quando riceve una chiamata
  3. Il client non si blocca quando esegue una chiamata
  4. Il server restituisce il controllo al completamento della richiesta
A
  1. Il server restituisce il controllo alla ricezione della richiesta
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Qual è lo scopo dell’unmarshalling dei parametri di una chiamata di procedura remota?

  1. Ottimizzare i dati ricevuti per minimizzare l’occupazione in memoria
  2. Tradurre i dati ricevuti in un formato adeguato alla chiamata locale
  3. Permettere il passaggio dei parametri di ritorno dopo l’esecuzione della procedura
  4. Utilizzare un formato agnostico rispetto alla rappresentazione dei dati di sender e
    receiver
A
  1. Tradurre i dati ricevuti in un formato adeguato alla chiamata locale
17
Q

Il modello RPC asincrona prevede che il chiamato possa restituire il risultato della chiamata:

  1. Chiamando una procedura del middleware
  2. Inviando un messaggio al middleware del chiamante
  3. Chiamando una procedura che è stata passato dal chiamante
  4. Inviando un messaggio al chiamante
A
  1. Chiamando una procedura che è stata passato dal chiamante
18
Q

In Java RMI, è possibile registrare un oggetto remoto presso un unico RMI registry definito
a livello LAN?

  1. No perché a livello applicativo non è possibile modificare un servizio definito dal
    middleware
  2. No perché il servizio è distribuito con un RMI registry per ogni macchina
  3. Si perché a livello applicativo è possibile implementare questo servizio
  4. Si perché il middleware prevede un unico servizio di naming
A
  1. Si perché a livello applicativo è possibile implementare questo servizio |è questa
    sicuro. .. però boh. no comment|
19
Q

Il modello RPC asincrona prevede che il controllo venga restituito al chiamante dopo che:

  1. Il chiamato ha completato l’esecuzione della procedura
  2. Il chiamato ha ricevuto richiesta di esecuzione della procedura
  3. Il middleware del chiamato ha ricevuto il messaggio di invocazione
  4. Il middleware del chiamante ha ricevuto il messaggio di invocazione
A
  1. Il middleware del chiamato ha ricevuto il messaggio di invocazione
20
Q

Qual è lo scopo del marshalling dei parametri di una chiamata di procedura remota RPC?

  1. Ottimizzare l’occupazione in memoria dei parametri
  2. Utilizzare un formato agnostico rispetto alla rappresentazione dei dati di sender e receiver
  3. Permettere il passaggio parametri tra web server e application server
  4. Permettere il passaggio parametri tra web client e web server
A
  1. Permettere il passaggio parametri tra web client e web server
21
Q

Definire RPC, vantaggi e svantaggi

A

RPC è un protocollo che ha lo scopo di poter usufruire di un servizio di un applicazione che non risiede sulla stessa macchina del chiamante.
è molto utilizzato in quanto è semplice da implementare siccome segue il modello client server.
I suoi svataggi principali sono che:
- essendo le chiamate scritte nel codice, esse sono statiche, ciò si può cambiare usando delle chiamate dinamiche.
- le chiamate RPC standard sono asincrone, questo significa che sono bloccanti e di conseguenza anche che non permettono l’esecuzione di più thread, ciò è risolvibile semplicemente usando delle chiamate asincrone

22
Q

Cos’è lo stub? qual’è il suo ruolo?

A

Uno stub è una porzione di codice che viene incluso nel codice del client e nel codice del server, esso simula comportamenti locali alle chiamate/risposte di client e server.
Il suo compito è di trasferire i dati tra i due processi.

23
Q

Cos’è il marshalling/unmarshalling?

A

Per poter inviare dati ad un processo che si trova su un’ altra macchina, uno dei procedimenti fondamentali è quello di effettuare il marshalling e l’unmarshalling dei dati, in pratica prende i dati che vogliamo trasferire, che si trovano in memoria, e li rende adatti ad un formato per la trasmissione

24
Q

Definire gli oggetti distribuiti, parlare anche dei reference

A

Gli oggetti distribuiti sono il modo in cui si può far sapere lo stato di un oggetto ad un altro processo, il modo in cui lo si può fare è utilizzando dei reference, essi sono degli alias ad oggetti già esistenti.
Gli oggetti non vengono passati per indirizzo in quanto non si possono sapere gli indirizzi di memoria di un’altra macchina.
i reference sono definiti da:
- indirizzo della macchina
- porte del processo
- ID dell’ oggetto