Форматер

Когда данные передаются между процессами при помощи Remoting или веб-служб, они должны посылаться в формате, понимаемом как клиентом, так и сервером. Существует возможность создать свой собственный форматер, который определяет, какие передаются данные, к какому типу они относятся, и так далее. Стек, используемый на сервере для упаковки данных, будет точно таким же, как и стек, используемый в клиенте для их распаковки.

Создание форматера и подключение его к структуре удаленного доступа на самом деле не будет очень сложным, так как структура предлагает базовые классы, которые могут помочь нам создать скелет, требуемый для реализации форматера. Однако в большинстве проектов создание форматера не будет входить в круг выполняемых задач.

В дополнение к предоставлению возможности создавать ваш собственный форматер, структура удаленного доступа предлагает два готовых форматера - двоичный форматер и форматер SOАР.

Двоичный форматер очень эффективен, так как он может сериализовать объект в очень маленький байтовый поток. Все объекты, сериализованные при помощи двоичного форматера, также должны им десериализоваться, так что он является идеальным решение, если у вас на обоих концах провода имеется .NET.

Однако эффективность двоичного форматера имеет свою цену; его выходной поток не является читабельным для человека и ограничен теми платформами, на которых установлен двоичный форматер. В настоящий момент двоичный форматер был реализован, только на платформе ,NET, так что использование двоичного форматера требует, чтобы вы посылали данные от сервера .NET к клиенту .NET и обратно.

Форматер SOAP передает данные в формате сообщений SOAP. Сообщения SOAP более многословны, чем их двоичные аналоги, что делает их менее эффективными, чем сообщения в двоичном формате.

Однако форматер SOAP имеет гораздо больше возможностей, чем двоичный форматер, с точки зрения предоставления переносимости и взаимодействия с сообщениями. Возможно, наиболее интересным использованием SOAP является возможность обрабатывать и интерпретировать сообщения SOAP любой платформой, которая понимает SOAP. Эта гибкость позволяет нам реализовать сервер и клиента для различных платформ, в частности для .NET и Java, но не только для них. Клиент Java может принимать сообщение Java от сервера .NET, и наоборот. Это является основой веб-служб. Единственным еще не указанным требованием для обеспечения межплатформенного взаимодействия является передача сообщения SOAP по одному и тому же протоколу или каналу.