WCF - Artigo .net Magazine 85
Neste artigo abordaremos um dos assuntos de extrema importância no Windows Communication Foundation - WCF, o gerenciamento de instâncias. Mostraremos os tipos de instâncias existentes, e em quais situações melhor utilizá-las, e em seguida usaremos alguns conceitos, criando uma aplicação.
Atenção: esse artigo tem um vídeo complementar. Clique e assista!
Neste artigo abordaremos um dos assuntos de extrema importância no Windows Communication Foundation - WCF, o gerenciamento de instâncias. Mostraremos os tipos de instâncias existentes, e em quais situações melhor utilizá-las, e em seguida usaremos alguns conceitos, criando uma aplicação.
Para que serve
Gerenciamento de instâncias é usado pelo Windows Communication Foundation para vincular clientes a instâncias de serviços, determinando como cada uma lida com as requisições.
Em que situação o tema é útil
O uso de instâncias no Windows Communication Foundation pode ser usado em vários cenários em aplicações distribuídas, por exemplo, em aplicações de chats, transações bancárias e aplicações de comércio eletrônico.
Gerenciamento de Instâncias no WCF
O Windows Communication Foundation veio para revolucionar se tratando em aplicações distribuídas, e saber como será o vínculo dos clientes a instâncias dos serviços é de extrema importância, pois para cada cenário devemos nos atentar a cada tipo existente no WCF. Veremos neste artigo quais são esses tipos e quando usá-los. No final do artigo criaremos uma aplicação colocando em prática um tipo de instância.
Gerenciamento de instância é uma técnica usada pelo Windows Communication Foundation, que vincula o cliente (Proxy) ao serviço, determinando quais delas lidam com quais requisições. Saber qual técnica usar é muito importante porque aplicativos diferem de suas necessidades como escalabilidade, desempenho, transações e chamadas em filas. No Windows Communication Foundation existem três tipos de instâncias, são elas: PerCall, PerSession e Single. A configuração do modo como será instanciado um serviço é estritamente um detalhe de implementação que não deve transparecer para o cliente de forma alguma. O modo de como será a escolha da instância, será dado em comportamentos (behavior).
Um behavior é um atributo local de um serviço que não afeta sua comunicação, que pode ser definido opcionalmente. Os clientes não precisam saber da existência dos behaviors. O Windows Communication Foundation define três tipos de behaviors: ServiceBehavior, OperationBehavior e EndPointBehavior. No artigo é utilizado o ServiceBehavior, pois esse atributo é usado para configurar o modo de gerenciamento de instâncias. Nele existe uma propriedade InstanceContextMode, que recebe uma enumeração com o mesmo nome. O valor dessa enumeração controla qual o modelo de instância é utilizado: InstanceContextMode.PerSession, InstanceContextMode.PerCall, InstanceContextMode.Single. O ServiceBehaviorAttribute é usado para configurar comportamentos de operação, ou seja, afetam somente a implementação de uma operação em particular. É nesse atributo, que se informam configurações adicionais como sessões, transações e o modelos de instâncias.
PerCall
Quando o serviço é configurado no modo PerCall somente uma instância existe para cada método chamado, ou seja, para cada Proxy instanciado e chamado um método por ele. Uma instância do serviço é criada, não importando sé é o mesmo Proxy ou não, conforme Figura 1.
Figura 1. Modelo de instância do tipo PerCall
Assim que o método retornar com o resultado esperado a instância é liberada da memória. Descartar a instância é um item muito importante a se lembrar, e que se o serviço implementar a interface IDisposable, o Windows Communication Foundation automaticamente chamará o método Dispose(), permitindo que se execute qualquer operação de finalização que seja necessária antes de descartá-lo. No modelo de instância PerCall o Dispose é executado na mesma thread que executou a chamada ao método original."
[...] continue lendo...Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo