Выбор последовательности протоколов
Последовательность протоколов — это язык, используемый сетевой операционной системой для взаимодействия по сети с другими компьютерами. В более конкретных терминах приложения RPC должны указывать строку, представляющую сочетание протокола RPC, транспортного протокола и сетевого протокола.
Microsoft RPC поддерживает три протокола RPC:
- Протокол, ориентированный на подключение к архитектуре сетевых вычислений (NCACN)
- Протокол datagram архитектуры сетевых вычислений (NCADG)
- Вызов локальной удаленной процедуры архитектуры сетевых вычислений (NCALRPC)
Приложения RPC могут использовать протокол NCALRPC для вызова процедур, предлагаемых серверными программами, работающими на том же компьютере, на котором выполняется клиентская программа. Это наиболее эффективный метод вызова функциональных возможностей в другом процессе на одном компьютере.
Транспортные и сетевые протоколы, которые использует приложение, зависят от того, какие протоколы поддерживает сеть. Многие сети сегодня, включая Интернет, поддерживают TCP/IP. Другие распространенные протоколы транспорта и сети: IPX/SPX, NetBIOS и DSP AppleTalk. Microsoft RPC поддерживает эти и другие протоколы транспорта и сети. Полный список см. в разделе "Константы последовательности протоколов".
Если приложение использует автоматические дескрипторы привязки, ему не нужно указывать последовательность протоколов. Если он использует неявные или явные дескрипторы, он должен получить или указать последовательность протоколов. Каждая распределенная система должна изучить среду, в которой она будет развернута, чтобы определить, какая последовательность протоколов лучше всего подходит для этой среды.
Не все последовательности протоколов имеют эквивалентную функциональность. Разработчики должны убедиться, что выбранная последовательность протоколов поддерживает необходимые функции. Как правило, рекомендуется использовать ncalrpc для локальных коммуникаций и ncacn_ip_tcp или ncacn_http для удаленного взаимодействия; они работают во всех средах, имеют оптимальную производительность и поддерживают все необходимые, лучшие функции.
Клиенты также могут указывать сведения о последовательности протоколов, полученные из Active Directory, реестра, переменных среды, созданных и инициализированных программой установки, файлами конфигурации для конкретного приложения или из литеральных строк в исходном коде программы.
После того как клиентская программа имеет допустимую строку последовательности протоколов, она может передать эти сведения в функции RpcStringBindingCompose и RpcBindingFromStringBinding для создания дескриптора привязки.