Arquitetura do sistema de interação remota .NET Framework
The infra-estrutura da arquitetura de comunicação remota do.NET is an abordagem abstrata to inter-Processo Communication. Objetos que podem ser passados por valor, ou copiados, automaticamente são passados entre aplicativos em domínios de aplicativos diferentes ou em computadores diferentes. Mark Your Personalizar classes as serializado to make this trabalho.
No entanto, o nível real de sistema de remoting, reside na sua capacidade de habilitar a comunicação entre objetos em domínios de aplicativos diferentes ou processos usando protocolos de transporte diferentes, formatos de serialização, esquemas vida útil de objeto e modos de criação do objeto. Além disso, o sistema de interação remota possibilita a intervir praticamente qualquer etapa do processo de comunicação.
Se você tiver implementado um número de aplicativos distribuídos ou se estiver interessado em Mover componentes para outros computadores para aumentar a escalabilidade do seu programa, é mais fácil de entender o sistema remoto como um sistema genérico de comunicação entre processos com algumas implementações padrão que tratam facilmente a maioria dos cenários. A discussão a seguir começa com as noções básicas de comunicação entre processos usando sistema de interação remota.
Cópias vs. Referências
Cruz-Communication processo requires a objeto servidor whose Functionality is provided to callers outside its processo, a cliente that makes Calls on the objeto servidor, and a Mechanism Transportation to the Calls from end one to the other ferry. The addresses of servidor Métodos are Logical and função corretamente in one processo, but not função in a processo cliente different. To alleviate this problem, a cliente can chamar a objeto de servidor by making a copiar of the objeto in its entirety and Moving it to the processo cliente, onde Methods 's the copiar can be invoked directly.
Muitos objetos, no entanto, não é possível ou deve não ser copiados e movidos para algum outro processo para execução. Objetos extremamente grandes com muitos métodos não devem ser copiados ou passados por valor para outros processos. Geralmente, um cliente requer apenas as informações retornadas por um ou alguns métodos no objeto do servidor. Copying the objeto servidor Entire, including What Could be amounts vast of informações Internal or Executável não relacionado structures to Requirements the cliente 's, would be a waste of largura de banda as well as of cliente memória and tempo processamento. In addition, muitos Objects Expose Functionality Public, but Require dados particulares for execution Internal. Copiar esses objetos poderia permitir que os clientes não autorizados examinar dados internos, criando a possibilidade de problemas de segurança. Finalmente, alguns objetos usar dados que não podem ser copiados de alguma forma compreensível. Por exemplo, um objeto https://msdn.microsoft.com/pt-br/library/akth6b1k(v=vs.85) FileInfo, contém uma referência a um arquivo de sistema operacional, que tem um endereço exclusivo na memória do processo do servidor. Você pode copiar esse endereço, mas ele não será válido no outro processo.
In these situations, should the processo servidor transmitir to the processo cliente a reference to the objeto de servidor, rather than a Copiar of the objeto. Os clientes podem usar essa referência para chamar o objeto do servidor. Essas chamadas não executar no processo de cliente. Em vez disso, o sistema Remoting coleta todas as informações sobre a chamada e o envia para o processo do servidor, onde ela é interpretada, o objeto de servidor correto está localizado, e a chamada é feita para o objeto de servidor no nome do objeto do cliente. The result of the chamar then is sent voltar to the cliente Processo to be returned to the cliente. Largura de banda é usada para apenas as informações importantes — a chamada, argumentos de chamada e qualquer retornam valores ou exceções.
Arquitetura do Sistema de Interação Remota simplificada
Usando referências de objeto para a comunicação entre objetos de servidor e clientes é o coração do remoting. The arquitetura arquitetura de comunicação remota, however, Provides the Programmer with a Mais procedimento Basic. If you Configure the cliente just corretamente, Criar a instância New of the remoto objeto Using new (or the função Creation instância from your gerenciado linguagem programação). O cliente recebe uma referência ao objeto de servidor, e em seguida, você pode chamar seus métodos como se fosse o objeto no seu processo vez executando em um computador separado. Sistema de remoting usa os objetos de proxy para criar a impressão que o objeto do servidor está em processo do cliente. Proxies são objetos que apresentam próprios como algum outro objeto. Quando seu cliente cria uma instância do tipo remoto, infra-estrutura de remoting cria um objeto de proxy parecida exatamente com o tipo remoto para seu cliente. Seu cliente chama um método em que proxy e o sistema Remoting recebe a chamada, roteia-lo para o processo do servidor, chama o objeto de servidor e retorna o valor de retorno para o Proxy do Cliente, que retorna o resultado para o cliente.
Remoto Calls must be conveyed in Some way between the cliente and the processo servidor. If you were compilação a sistema arquitetura de comunicação remota yourself, you Might iniciar by Learning programação rede and a Wide Matriz de Protocols and specifications formato serialização. No sistema .NET Remoting, a combinação de tecnologias subjacentes necessários para abrir uma conexão de rede e usar um protocolo específico para enviar os bytes para o aplicativo de recebimento são representados como um canal de transporte.
Um canal é um tipo que leva um fluxo de dados, cria um pacote de acordo com a um protocolo de rede particular e envia o pacote para outro computador. Alguns canais somente podem receber informações, outros só podem enviar informações e ainda outras, como o padrão TcpChannel e classes https://msdn.microsoft.com/pt-br/library/43ds56ty(v=vs.85) HttpChannel, podem ser usadas em qualquer direção.
Embora o processo do servidor sabe tudo sobre cada tipo exclusivo, o cliente só sabe que ele quer uma referência a um objeto em outro domínio de aplicativo, talvez em outro computador. A partir do mundo fora do domínio de aplicativo do servidor, um URL localiza o objeto. The URLs that represent exclusivo URLs ativação, which ensure that are Types to the global outside Your Remoto chamar is made to the proper tipo. Para obter mais detalhes, consulte URLs de ativação.
Concluir estrutura do sistema do sistema de interação remota
Suppose You have an aplicativo Executando on one computador, and you desejar to use the Functionality Exposed by a tipo that is stored on another computador. A ilustração a seguir mostra o processo geral Remoting.
Remoting process
If both sides of the relacionamento are configured corretamente, a cliente merely creates a instância New of the Servidor classe. Sistema de remoting cria um objeto de proxy que representa a classe e retorna para o objeto do cliente uma referência para o proxy. When a cliente Calls a método, the Infrastructure arquitetura de comunicação remota Handles the chamar, Checks the Informações do tipo, and SENDs the chamar over the canalizar to the processo servidor. Um canalizar escuta pega a solicitação e Avançar-lo para o sistema arquitetura de comunicação remota servidor, que localiza (ou cria, se necessário) e chama o objeto solicitado. O processo é, em seguida, revertida, como os grupos do sistema do servidor Remoting a resposta em uma mensagem que o canal do servidor envia para o canal do cliente. Finalmente, o sistema Remoting cliente retorna o resultado da chamada para o objeto do cliente através do proxy.
O código real muito pouco é necessário fazer esse trabalho, mas alguns pensamento deve ser fornecido para o design e a configuração de relação. O código pode ser absolutamente correto e ainda falhar, pois um URL ou número da porta está incorreto. Para obter mais informações, consulte Configuração.
Embora esta visão geral de alto nível do processo Remoting seja relativamente simples, os detalhes de nível inferior podem ser muito complexos. Mais Discussão detalhada sobre o principal elementos de arquitetura de comunicação remota é fornecido no outros tópicos, conforme listado no seguinte Consulte também seção.
Consulte também
Conceitos
Limites: Processos e domínios de aplicativos
Remotable e Nonremotable objetos
Segurança no sistema de interação remota
Configuração de aplicativos remoto
Outros recursos
Visão geral sobre a arquitetura de comunicação remota do .NET Framework