В общем, важным вопросом является то, какой клиент получит сериализованные объекты - браузеры/JavaScript-движки, такие как (node-js), клиент Java, неизвестные/несколько клиентов.
JSON - Синтаксис JSON - это в основном JavaScript, и поэтому любой компонент с двигателем JS будет обрабатывать его синтаксический анализ очень хорошо - даже сложные структуры данных будут эффективно преобразованы в «живые» объекты.Парсеры JSON существуют практически для любого языка, и их легко использовать, даже если они не используют JS-движок (например, возьмите Google Gson, который может легко конвертировать JSON в соответствующие объекты), что делает его хорошим кандидатом на межязычную связь - например, в messaging architecture.
XML - Предоставляет много преимуществ JSON - кросс-язычный, легкий и т. Д. Adobe Flex, например, обрабатывает XML очень хорошо, даже лучше, чем JSON. Это определенно подходящая замена для JSON. Я лично предпочитаю JSON для своего синтаксиса JS, но XML тоже хорош.
Java Serialization - Должно учитываться только для связи Java-Java. Важно отметить, что определения классов должны быть на отправляющем и принимающем концах, и часто вы не получите многого, передав весь объект. Я бы не исключил RMI как протокол связи, это упростило развитие. Однако получаемые компоненты приложения будут жестко связаны, что очень затруднит их замену.
Еще одна заметка - Сериализация в целом имеет свои накладные расходы. Однако, когда связь выполняется по сети, узким местом часто является сеть, а не сама сериализация/десериализация.
Так вы все еще будете рассматривать JSON или XML по сериализации Java, когда это сообщение JAVA-to-JAVA? – peter
Если все, что вы проходите, это данные, я бы пошел на XML или JSON. Я бы не стал сериализовать и передавать объекты Java вручную. Посмотрите на Java RMI, если имеет смысл иметь одно и то же определение объекта на обоих концах, и в случае, если вы заинтересованы в вызове методов на удаленном объекте. Надеюсь, поможет. –