Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di Gumble
    Registrato dal
    Jun 2004
    Messaggi
    1,313

    marshaling - spiegazioni!

    ciao, qualcuno é in grado di spiegarmi bene come funziona e cosa é il marshaling????
    inoltre... ho queste righe di codice che non capisco:

    codice:
    /* 3. TODO: Re-marshal data (message and sequence index) */
    	ByteArrayOutputStream bstream = new ByteArrayOutputStream(maxMessageLength);
    	DataOutputStream dstream = new DataOutputStream(bstream);
    	dstream.writeLong(aLong); // marshals a Long into the byte array stream
    help
    alcool: la causa e la soluzione di tutti i problemi

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,317
    Il marshalling credo sia un modo come un altro per chiamare la "ridefinizione" o "scomposizione" dei dati.

    Il codice che hai postato non fa altro che prendere un long e scriverlo in un array di byte. In pratica scompone il long byte per byte.

    Il meccanismo utilizzato è abbastanza semplice: viene creato un canale di output verso un array di byte (in Java l'astrazione è portata a livelli molto alti) tramite un oggetto della classe ByteArrayOutputStream (che rappresenta, appunto, un canale di output che punta a un array di byte: tutto ciò che viene scritto su questo canale, finisce nell'array di byte; in pratica, viene scomposto in byte).
    Su questo canale viene construito uno stream di dati generico, al quale viene passato, appunto, un dato di tipo Long. Questo stream di dati generico, quindi, utilizza il canale verso l'array di byte per scomporre il long in una serie di byte.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Il marshalling è una tecnica utilizzata da Java nell'RMI. Con RMI tu puoi invocare un metodo remoto come se fosse locale, senza doverti preoccupare di gestire nulla, viene fatto tutto da Java. Tu devi solo scrivere , ad esempio :
    int ris=somma(5,5);
    Java, tramite lo stub, un particolare file che sa come gestire il metodo remoto, capisce che quel metodo è un metodo remoto ed esegue le seguenti operazioni:
    1) Locallizza dove si trova il metodo realmente
    2) Effettua il marshalling dei dati, crea, cioè, un pacchetto contenente le informazioni da passare al metodo remoto, cioè gli eventuali i dati ed il nome del metodo.
    3) Invoca una chiamata al server remoto in ascolto tramite il Sistema operativo
    4) Invia i dati marshallati
    5) Il server riceve il pacchetto esegue l'unmarshalling dei dati
    6) Li passa alla procedura locale
    7) Esegue le operazioni
    8) Esegue di nuovo il marshalling del risultato
    9) lo rimanda indietro al chimante il quale a sua volta effettuerà l'unmarhsalling e potrà visualizzare il risultato.
    Lang=Java
    Ambiente = Eclipse forever
    Ubuntu & Win XP Pro

  4. #4
    Utente di HTML.it L'avatar di Gumble
    Registrato dal
    Jun 2004
    Messaggi
    1,313
    grazie ad entrambi!
    alcool: la causa e la soluzione di tutti i problemi

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.