In generale, la questione importante è quale client riceverà gli oggetti serializzati - motori browser/JavaScript come (node-js), client Java, client sconosciuti/multipli.
JSON - sintassi JSON è fondamentalmente JavaScript e quindi qualsiasi componente con un motore JS gestirà la sua analisi molto bene - strutture dati anche complesse saranno convertiti in "vivere" gli oggetti in modo efficiente.I parser JSON esistono praticamente per qualsiasi lingua ed è facile da usare anche quando non si utilizza un motore JS, (Prendete ad esempio Google Gson che è in grado di convertire JSON in oggetti corrispondenti con facilità), il che rende un buon candidato per la comunicazione tra lingue diverse - ad esempio in un messaging architecture.
XML - Condivide molti dei vantaggi di JSON: cross-language, leggero, ecc. Adobe Flex ad esempio gestisce l'XML molto bene, anche meglio di JSON. È sicuramente un sostituto appropriato per JSON. Personalmente preferisco JSON per la sua sintassi simile a JS, ma anche XML è buono.
Serializzazione Java - Deve essere considerato solo per la comunicazione Java-Java. Una nota importante è che le definizioni di classe dovrebbero trovarsi sul lato di invio e di ricezione e spesso non si otterrebbe molto passando l'intero oggetto. Non escluderei RMI come protocollo di comunicazione, semplifica lo sviluppo. Tuttavia i componenti dell'applicazione risultanti saranno strettamente accoppiati, il che renderà molto difficile la loro sostituzione.
Ancora una nota: la serializzazione in generale ha il suo overhead. Tuttavia, quando la comunicazione viene eseguita su una rete, il collo di bottiglia è spesso la rete piuttosto che la serializzazione/deserializzazione stessa.
fonte
2012-06-19 14:50:59
Quindi continuerai a considerare JSON o XML sulla serializzazione java quando si tratta della comunicazione da JAVA a JAVA? – peter
Se tutto quello che stai passando sono dati vorrei andare per XML o JSON. Non andrei a serializzare e trasmettere oggetti Java manualmente. Cerca in RMI Java se ha senso avere la stessa definizione di oggetto su entrambe le estremità e nel caso tu sia interessato a invocare metodi sull'oggetto remoto. Spero che sia d'aiuto. –