Os designers do Windows decidiram fazer muitas coisas se comunicarem por meio de RPC - para que eles pudessem conversar localmente ou por uma rede.
Isso inclui coisas como o Active Directory, a maioria dos consoles MMC, a funcionalidade de alguns miniaplicativos do painel de controle, como o Gerenciador de dispositivos, muitas das ferramentas administrativas, e possivelmente componentes internos do Windows.
Acredito que mesmo quando você está acessando um console MMC, gostaria compmgmt.msc
de ver coisas sobre a máquina local, é basicamente fazer RPC para o host local (eu poderia estar errado).
Pense no RPC como algo um nível acima do TCP / IP usado como uma estrutura de comunicação em rede de baixo nível (e insegura) por muitos componentes do Windows. Por que não usar TCP / IP diretamente? Na época em que o Windows NT foi projetado (versão inicial lançada em 1993), você tinha outros protocolos de rede além do TCP / IP em uso comum, como Netware (SPX / IPX), NetBIOS, AppleTalk (acho que o Windows suportava isso de volta nos dias de hoje). , pode estar errado ...) e tal. Portanto, essa é uma maneira independente de rede para que os componentes do Windows possam conversar com outros componentes na máquina local ou remota.
A verdade é: o RPC é amplamente usado em máquinas LOCAL , mas, para uso de HOST a HOST , é usado principalmente pela Microsoft internamente, raramente usado por terceiros .
Uso principal do RPC LOCAL :
Componente RPC bruto, como Registro, Netlogon, Firewall, Controle de Serviço, SQL Server ... Você pode vê-los na lista na seção "HOST-to-HOST".
muitos componentes DCOM (baseados em RPC, como um wrapper C ++ de C), incluem componentes COM +.
Você pode executar o dcomcnfg para ver quantos componentes DCOM em sua máquina:
Excel, Internet Explorer, Visual Studio ... podem ser automatizados porque são componentes do DCOM:
Até a caixa de diálogo Propriedades do arquivo do Explorer também é componente do DCOM, engraçado? Se você remover todas as ACLs de "Editar limites" das permissões de inicialização do DCOMCNFG, não poderá fazer quase nada, além de apenas o gerenciamento funcionar !, até mesmo mostrar a propriedade do arquivo no explorer!
Uso principal de RPC HOST-to-HOST :
Coisas de Gerenciamento Remoto, como quando "Gerenciamento do Computador", "Editor do Registro", você pode conectar a uma máquina remota! O que acontece sublinhado é o protocolo RPC sobre SMB (porta TCP 445, conhecida como Compartilhamento de Arquivos).
Você pode usar a ferramenta rpcdump ou ifids para despejar todas as interfaces internas de RPC na máquina remota; veja os seguintes resultados; você pode ver muitas interfaces de gerenciamento do sistema (elas também podem ser usadas localmente, é claro):
Por que o RPC é importante? Só porque todo sistema maduro precisa de um mecanismo de comunicação entre processos, um conjunto de ferramentas para gerar stub / proxy, um padrão para empacotar / descompactar objetos. Todo sistema tem coisas semelhantes. Você deve conhecer o Android, seu Binder é muito semelhante ao design do DCOM.
De fato, o RPC de HOST para HOST não é amplamente difundido, principalmente porque são complicados e opacos, não são amigáveis à Internet devido ao bloqueio das portas 445 ou 135, e a experiência de autenticação é ruim. As pessoas preferem escolher um servidor HTTPS para chamar um componente remoto, é mais direto e controlável.
fonte
Chamada de procedimento remoto (RPC)
fonte: http://searchsoa.techtarget.com/definition/Remote-Procedure-CallMais informações da Microsoft: http://msdn.microsoft.com/en-us/library/windows/desktop/aa378651(v=vs.85).aspx
fonte