Поделиться через


Службы сериализации

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

Примечание

Термин "квадрование " обычно используется разработчиками для описания сериализации. На самом деле, примеры windows SDK содержат каталог с именем pickle , который сохраняет примеры программ сериализации RPC.

 

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

В качестве другого примера можно использовать механизм сетевого транспорта помимо RPC, например Сокеты Microsoft Windows (Winsock). С помощью RPC-сериализации программа может выполнять вызовы функций, которые маршалуют данные в буферы, а затем передают эти данные с помощью Winsock. Когда приложение получает данные, оно может использовать механизм сериализации RPC, чтобы удалить данные из буферов, заполненных подпрограммами Winsock. Это обеспечивает множество преимуществ приложений в стиле RPC и в то же время позволяет использовать механизмы транспорта, не относящиеся к RPC.

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

В следующих разделах рассматриваются службы сериализации, поддерживаемые Microsoft RPC: