De que se trata o artigo

Neste artigo abordaremos a construção de um tipo de aplicação conhecido como Serviço Windows (ou Windows Services, em inglês) onde serão descritos seus tipos, modo de funcionamento interno, arquitetura e segurança. O objetivo é esclarecer a estrutura interna deste tipo de aplicação para proporcionar maior controle sobre sua criação.


Para que serve

Serviços Windows servem para construir aplicações de longa duração que executam suas tarefas em segundo plano ou por detrás das cenas. Este tipo de aplicação independe do registro de uma sessão de usuário, ao invés disto possui seu próprio contexto de execução e segurança, também pode ser iniciado de forma automática no processo de boot do sistema operacional.


Em que situação o tema é útil

Muito tem se falado sobre serviços nos últimos tempos dentro do universo da tecnologia da informação, a saber, SOA (Service-Oriented Architecture), Web Services, SaaS (Software as a Service), SPS (Software Plus Services) dentre outros. Entender o conceito por detrás deste modelo de aplicação em seus vários níveis é fundamental em nossos dias para permanecermos antenados com as tendências do mercado tecnológico. Pode-se assumir que a utilização de Serviços Windows sempre é útil quando desejamos que um componente de software atenda as necessidades de outros componentes de forma centralizada, autônoma e independente, facilitando a distribuição e a reutilização do mesmo. Outro cenário interessantíssimo para aproveitarmos os Serviços Windows é utilizá-los em conjunto com a classe ServiceHost para hospedagem de serviços WCF.

Serviços Windows

Neste artigo entenderemos a arquitetura e o modelo de componentes dos Serviços Windows, onde será visto também como é possível customizar mensagens próprias de comandos, tais mensagens são utilizadas para o controle do serviço que são utilizadas para iniciar, interromper e continuar o serviço. Na seção prática serão construídas duas aplicações, sendo a primeira um serviço de notificação de mensagens através do canal de comunicação TCP e a segunda uma aplicação de controle para o serviço construído. Também será descrito como é possível depurar e registrar um serviço no gerenciador de serviços do Windows.

O conceito de serviço computacional que se ouve bastante nos dias atuais é uma ideia que vem sendo amadurecida há muito tempo na área de tecnologia. Baseado nesta afirmação pode-se mencionar como exemplo um serviço de terminal chamado Telnet que nasceu na década de 80 e que permite aos usuários acessarem o console de outro computador remotamente. E porque não mencionar também o DNS, DHCP, SSH, FTP e muitos outros consagrados serviços de rede que já existem a um bom tempo.

O objetivo de um serviço neste contexto é disponibilizar a um ou mais computadores acesso a recursos computacionais de forma centralizada ou distribuída, podendo envolver gerenciamento, segurança, acesso a dados e muitos outros elementos sistêmicos. Desde o princípio da era computacional até a atualidade muito trabalho foi realizado no sentido de evoluir o conceito de serviço computacional e o resultado de todo este trabalho tem se refletido na forma de inúmeras novas tecnologias que vêm sendo criadas a cada dia visando atender as necessidades de negócios de forma cada vez mais eficiente.

Nos sistemas operacionais Windows é possível empreender serviços de algumas formas diferentes, a saber: Web Services, WCF, Serviços de componentes (COM+), TCP Socket, .Net Remoting, Serviços Windows etc. O Serviço Windows possui algumas vantagens interessantes, pois atua de forma totalmente independente se comportando como um processo de longa duração que possui seu próprio contexto de segurança e que pode ser iniciado logo que o computador realiza seu processo de boot. Desta forma não dependerá de alguma infraestrutura de apoio como um serviço de Web Server por exemplo. Essa citação não possui efeito comparativo e ou qualitativo, pois para cada cenário uma determinada tecnologia pode levar vantagens sobre outras e isso deve ser analisado caso a caso. De qualquer maneira vamos citar algumas outras vantagens significativas referentes ao Serviço Windows que possui de forma nativa um recurso de recuperação de falhas que permite ações do tipo reiniciar o serviço, executar um programa e reiniciar o computador) em caso de falha.

Um Serviço Windows também permite controle de ativação de um serviço pela seleção de perfil de hardware ativo, controle de dependências que permitem que ele somente seja iniciado se outros serviços estiverem previamente iniciados. Um bom exemplo disto é o Firewall do Windows que depende da Conexão de Rede e Instrumentação (WMI) para ser iniciado. Outra característica de um serviço Windows é que ele não possui interface gráfica. No próximo tópico a arquitetura deste modelo de aplicação será apresentada em detalhes.

Entendendo a arquitetura dos Serviços Windows

Diferente de uma aplicação convencional um Serviço Windows é composto por alguns componentes que se relacionam de forma direta para que o serviço funcione de forma apropriada, na ...

Quer ler esse conteúdo completo? Tenha acesso completo