Я хочу использовать несколько кодировок в слое представления для кодирования объекта/структуры в уровне приложения независимо от схемы кодирования (такой как двоичный, XML и т. Д.) И языка программирования (Java, Javascript, PHP , C).Внедрение независимого кодирования сериализации Java
Примером может быть передача объекта от производителя потребителю в потоке байтов. Клиент Java будет кодировать его, используя что-то вроде этого:
Object var = new Dog();
output.writeObject(var);
сервер разделит определения класса Dog и может регенерировать объект делать что-то вроде этого:
Object var = input.readObject();
assertTrue(var instanceof Dog); // passes
Важно отметить, что производитель и потребитель не будет делиться типом var, и, следовательно, потребителю не нужен тип для декодирования var. Они только будут разделять определения типов данных, если когда-либо:
public interface Pojo {}
public class Dog implements Pojo { int i; String s; } // Generated by framework from a spec
То, что я нашел:
- Java Сериализация: Это зависит от языка. Невозможно использовать, например, javascript.
- Protobuf library: Он ограничен конкретным двоичным форматом. Невозможно поддерживать дополнительные двоичные форматы. Нужно имя класса («класс» сообщения).
- XStream, Simple и т. Д. Они скорее ограничены текстом/XML и требуют названия класса.
- ASN.1: Стандарты существуют и могут использоваться с определениями OBJECT IDENTIFIER и типов, но им не хватает документации и учебных пособий.
Я предпочитаю 4-й вариант, потому что, среди прочего, это стандарт. Есть ли активный проект, который поддерживает такие требования (особенно что-то, основанное на ASN.1)? Любой пример использования? Включает ли проект кодеки (DER, BER, XER и т. Д.), Которые можно выбрать во время выполнения?
Благодаря