Дизайнеры Windows решили заставить многие вещи общаться друг с другом через RPC, чтобы они могли общаться либо локально, либо по сети.
Это включает в себя такие вещи, как Active Directory, большинство консолей MMC, функциональность некоторых апплетов панели управления, таких как диспетчер устройств, многие вещи в инструментах администрирования и, возможно, внутренние компоненты Windows.
Я верю, что даже когда вы обращаетесь к консоли MMC, например, compmgmt.msc
для просмотра информации о локальной машине, это в основном RPC для localhost (хотя я могу ошибаться).
Считайте RPC чем-то на один уровень выше TCP / IP, который используется как низкоуровневая (и небезопасная) сетевая коммуникационная структура многими компонентами Windows. Почему бы не использовать TCP / IP напрямую? Во время разработки Windows NT (первоначальная версия была выпущена в 1993 году) у вас были другие сетевые протоколы, помимо TCP / IP, которые обычно используются, такие как Netware (SPX / IPX), NetBIOS, AppleTalk (я думаю, что Windows поддерживала это в свое время может ошибаться ...) и тому подобное. Так что это независимый от сети способ для компонентов Windows иметь возможность общаться с другими компонентами на локальном или удаленном компьютере.
Правда в том, что RPC широко используется в LOCAL- машине, но для использования HOST-HOST , в основном используется Microsoft для внутренних целей , редко используется сторонними разработчиками .
LOCAL RPC основное использование:
Необработанный компонент RPC, такой как Реестр, Netlogon, Брандмауэр, Управление службами, SQL Server ... Некоторые из них вы можете увидеть в списке в разделе «HOST-to-HOST».
многие компоненты DCOM (основанные на RPC, как оболочка C ++ из C) включают компоненты COM +.
Вы можете запустить dcomcnfg, чтобы увидеть, сколько компонентов DCOM на вашем компьютере:
Excel, Internet Explorer, Visual Studio ... могут быть автоматизированы, потому что они являются компонентом DCOM:
Даже диалог Свойства файла в Проводнике также является компонентом DCOM, смешно? Если вы удалите все списки ACL из «Правки редактирования» в разрешениях запуска DCOMCNFG, вы не сможете делать почти ничего, кроме работы управления !, даже показывать свойство файла в проводнике!
Основное использование HOST-to-HOST RPC:
Такие вещи, как «Управление компьютером», «Редактор реестра», позволяют подключать его к удаленной машине! Подчеркивание происходит по протоколу RPC через SMB (TCP-порт 445, известный как общий доступ к файлам).
Вы можете использовать утилиту rpcdump или ifids, чтобы выгрузить все RPC-интерфейсы на удаленной машине, см. Следующие результаты, вы можете увидеть множество интерфейсов управления системой (конечно, их можно использовать и локально):
Почему RPC важен? Просто потому, что каждой зрелой системе нужен механизм межпроцессного взаимодействия, набор инструментов для создания заглушки / прокси, стандарт для упаковки / распаковки объекта. В каждой системе есть похожие вещи. Вы должны знать Android, его Binder очень похож на дизайн DCOM.
На самом деле RPC HOST-to-HOST не получили широкого распространения, главным образом потому, что они сложны и непрозрачны, не дружат с Интернетом из-за часто блокируемых 445 или 135 портов и плохой аутентификации. Люди предпочитают выбирать HTTPS-сервер для вызова удаленного компонента, он более простой и управляемый.
источник
Удаленный вызов процедур (RPC)
источник: http://searchsoa.techtarget.com/definition/Remote-Procedure-CallЗдесь больше от Microsoft: http://msdn.microsoft.com/en-us/library/windows/desktop/aa378651(v=vs.85).aspx
источник