Serviço eDocs vs Monitor vs IIS
Em algumas situações, existem dúvidas do motivo pelo qual ocorrem problemas na execução de algumas funcionalidades no Monitor, no entanto, os documentos eletrônicos continuam sendo enviados para a SEFAZ/Prefeitura normalmente. Da mesma forma, processos do Monitor são executados com sucesso, enquanto existem problemas com o envio e autorização dos documentos. Este tópico explica, de maneira sucinta, a relação entre o serviço do eDocs, o Monitor do sistema e o IIS (Internet Information Services – Serviços de Informações da Internet).
Informações sobre o serviço do eDocs, Monitor e IIS
Para deixar mais clara a estrutura utilizada pelo eDocs, segue uma imagem que exemplifica um ambiente que possua o sistema instalado (note que o quadro destacado em vermelho exemplifica um servidor onde o sistema está instalado, mencionando as camadas presentes neste servidor):
IIS (Internet Information Services – Serviços de Informações da Internet)
É um software da Microsoft que contém um conjunto de componentes que possibilita a disponibilização e gerenciamento de um servidor Web. No sistema operacional Microsoft Windows, este software é instalado opcionalmente, ou seja, precisa ser instalado por solicitação do usuário. Fazem parte do pacote de instalação do IIS o Gerenciador de Serviços de Informações da Internet (IIS) (inetmgr.exe) e o serviço o Serviço de Administração do IIS (inetinfo.exe), dentre outros componentes. É através deste software que a aplicação Web Monitor se comunicará com os demais componentes da solução ou com a Internet.
Serviço do eDocs
É o serviço disponibilizado juntamente com o pacote de instalação do eDocs, e que pode ser instalado conforme definição do usuário. No servidor onde ele for instalado, será criado o serviço Senior Documentos Eletrônicos - <Nome_Instância> no console de serviços do Windows (services.msc) (onde <Nome_instância> é o nome dado a instância instalada do sistema, durante o processo de instalação). Este serviço é responsável por executar todos os threads do sistema como, por exemplo, envio de documentos para SEFAZ/Prefeitura, consulta dos lotes enviados, limpeza de logs, entre outros.
Através da imagem que exemplifica a solução, é possível identificar que, apesar do serviço do eDocs estar sendo executado no mesmo servidor onde o IIS e Monitor estão sendo executados, ele é uma aplicação a parte, que se conecta na base de dados do sistema da mesma forma que o Monitor, através do IIS.
Informação adicional: Threads são um recurso da linguagem de programação que permite a separação da lógica de aplicativo em vários caminhos de execução simultâneos. Este documento não tem como objetivo trazer especificação técnica sobre programação, desta forma, informações adicionais poderão ser obtidas em outros locais, como na Internet.
Monitor
É uma aplicação Web que faz parte do conjunto de componentes do eDocs e serve de interface para os usuários do sistema acompanharem os processos executados pelo sistema, bem como parametrizar o sistema e executar algumas operações. O Monitor utiliza tecnologia Microsoft ASP.Net e é disponibilizado aos usuários através do IIS (por isso a instalação prévia do IIS no servidor onde o Monitor será instalado é imprescindível). O Monitor necessita do IIS para ser executado, assim como uma aplicação Java necessita da JVM (Java Virtual Machine).
Verificando a imagem que exemplifica a solução, é possível identificar que o Monitor é a aplicação que é executada com base camada do serviço do IIS, que por sua vez é executado com base na camada de serviços do Windows, que por sua vez é executado no servidor de aplicação.
Serviço eDocs com Monitor
O serviço do eDocs e o Monitor possuem como forma de ligação a base de dados do sistema, ou seja, estes dois componentes não se comunicam diretamente um com o outro. No entanto, através do compartilhamento da mesma base de dados, processos iniciados por uma ação no Monitor podem ser executados pelo eDocs.
O Monitor não é responsável pelo envio de e-mails para os clientes no caso de ser necessário o reenvio de um arquivo XML de NF-e (este processo é de responsabilidade do serviço do eDocs). No entanto, quando o usuário seleciona uma NF-e no Monitor e indica de que deverá ser enviado um novo e-mail com o arquivo XML da NF-e, o Monitor (através do IIS) marca o registro da NF-e como E-mail pendente de envio na base de dados do sistema, e então o serviço do eDocs, através de um de seus threads, monitora estes registros pendentes e efetua o envio do e-mail, marcando o registro na base de dados como E-mail enviado com sucesso caso o e-mail seja efetivamente enviado corretamente. A nova situação do registro de envio de e-mail poderá ser consultada através do Monitor.
Serviço do eDocs com o IIS
Não há nenhum relacionamento direto entre estes dois componentes, a não ser a conexão com a mesma base de dados (isso porque a aplicação Monitor utilizar o IIS para se comunicar com a base de dados).
Por este motivo, inclusive, uma NF-e, por exemplo, pode não ser enviada para a SEFAZ por algum problema de comunicação com os web services da SEFAZ (devido a utilização de algum proxy ou firewall, por exemplo), no entanto, a atualização da situação de uma outra NF-e através do botão Consultar pode funcionar normalmente.
E como isso poderia ocorrer?
O serviço do eDocs é um serviço específico e possibilita a definição das credenciais do usuário administrador da rede/domínio, e é através deste serviço que as NF-e são enviadas para a SEFAZ, após estabelecer a comunicação com os web services da SEFAZ.
Já o Monitor, como já informado, é uma aplicação executada com base no IIS, que por sua vez possibilita parametrizações específicas de credenciais do usuário administrador da rede/domínio.
Desta forma, se o serviço do eDocs não estiver parametrizado adequadamente, no entanto, as parametrizações do IIS estiverem adequadas, o processo de envio da NF-e não será realizado, mas a consulta de uma outra NF-e será executada com sucesso.
Monitor com o IIS
Conforme já especificado nas definições destes dois componentes e conforme é possível verificar na imagem que detalha a solução, o Monitor é a aplicação que é executada com base no IIS. Logo, se o IIS não estiver operacional, o Monitor não estará acessível.