.NET Remoting - .NET Remoting

.NET Remoting é uma interface de programação de aplicativos (API) da Microsoft para comunicação entre processos lançada em 2002 com a versão 1.0 do .NET Framework . É uma de uma série de tecnologias da Microsoft que começou em 1990 com a primeira versão de Object Linking and Embedding (OLE) para Windows de 16 bits . As etapas intermediárias no desenvolvimento dessas tecnologias foram o Component Object Model (COM) lançado em 1993 e atualizado em 1995 como COM-95, Distributed Component Object Model (DCOM), lançado em 1997 (e renomeado como Active X), e COM + com seu Microsoft Transaction Server (MTS), lançado em 2000. Ele agora foi substituído pelo Windows Communication Foundation (WCF), que faz parte do .NET Framework 3.0 .

Como seus membros da família e tecnologias semelhantes, como a Common Object Request Broker Architecture (CORBA) e a invocação de método remoto (RMI) do Java , o .NET Remoting é complexo, mas sua essência é direta. Com a ajuda do sistema operacional e dos agentes de rede, um processo cliente envia uma mensagem a um processo servidor e recebe uma resposta.

Visão geral

O .NET Remoting permite que um aplicativo torne um objeto (denominado objeto remotable ) disponível através dos limites do remoting , o que inclui diferentes appdomains , processos ou até mesmo diferentes computadores conectados por uma rede. O runtime do .NET Remoting hospeda o ouvinte para solicitações ao objeto no appdomain do aplicativo do servidor. Na extremidade do cliente, quaisquer solicitações ao objeto remoto são encaminhadas por proxy pelo tempo de execução do .NET Remoting sobre Channel objetos, que encapsulam o modo de transporte real, incluindo fluxos TCP , fluxos HTTP e canais nomeados . Como resultado, ao instanciar Channel objetos apropriados , um aplicativo .NET Remoting pode ser feito para oferecer suporte a diferentes protocolos de comunicação sem recompilar o aplicativo. O próprio tempo de execução gerencia o ato de serialização e empacotamento de objetos nos domínios de aplicativos do cliente e do servidor.

.NET Remoting faz uma referência de um objeto remoto disponível para um aplicativo cliente, que então instancia e usa um objeto remoto como se fosse um objeto local. No entanto, a execução real do código acontece no lado do servidor. Um objeto remoto é identificado por URLs de ativação e é instanciado por uma conexão com o URL. Um ouvinte para o objeto é criado pelo tempo de execução remoto quando o servidor registra o canal que é usado para se conectar ao objeto remoto. No lado do cliente, a infraestrutura remota cria um proxy que representa uma pseudo-instanciação do objeto remoto. Ele não implementa a funcionalidade do objeto remoto, mas apresenta uma interface semelhante. Como tal, a infraestrutura remota precisa conhecer a interface pública do objeto remoto de antemão. Quaisquer chamadas de método feitas contra o objeto, incluindo a identidade do método e quaisquer parâmetros passados, são serializados para um fluxo de bytes e transferidos por meio de um protocolo de comunicação dependente Channel para um objeto proxy de destinatário no lado do servidor (" empacotado "), por escrito para o coletor de transporte do Canal. No lado do servidor, o proxy lê o fluxo do coletor e faz a chamada para o objeto remoto em nome do cliente. Os resultados são serializados e transferidos pelo coletor para o cliente, onde o proxy lê o resultado e o entrega ao aplicativo de chamada. Se o objeto remotável precisar fazer um retorno de chamada para um objeto cliente para alguns serviços, o aplicativo cliente deve marcá-lo como remotável e ter um host de tempo de execução remoto um ouvinte para ele. O servidor pode se conectar a ele por meio de um canal diferente ou pelo já existente, se a conexão subjacente oferecer suporte à comunicação bidirecional. Um canal pode ser composto de vários objetos Canal diferentes, possivelmente com diferentes transportes heterogêneos. Assim, o remoting também pode funcionar em sistemas separados por uma interconexão de redes heterogêneas, incluindo a Internet. A segurança de tipo é reforçada pelo CTS e pelo tempo de execução do .NET Remoting. As chamadas de método remoto são inerentemente síncronas; chamadas assíncronas podem ser implementadas usando bibliotecas de encadeamento. A autenticação e o controle de acesso podem ser implementados para clientes usando canais personalizados ou hospedando os objetos remotos no IIS e, em seguida, usando o sistema de autenticação IIS.

Referências

links externos