Commit b0d760aacc4fcd063dc0133a1db93292cc234b04
1 parent
377a2b91
Exists in
master
Update Funcionamento agente.md
Showing
1 changed file
with
12 additions
and
7 deletions
Show diff stats
docs/Funcionamento agente.md
@@ -11,22 +11,27 @@ | @@ -11,22 +11,27 @@ | ||
11 | Tentei pensar em algo menos trabalhoso, pois quando instalado por meio do netlogon pode complicar pra instalar na rede, como já presenciamos na PGFN, e também atrasar o login do usuário, então pensei nos seguintes procedimentos: | 11 | Tentei pensar em algo menos trabalhoso, pois quando instalado por meio do netlogon pode complicar pra instalar na rede, como já presenciamos na PGFN, e também atrasar o login do usuário, então pensei nos seguintes procedimentos: |
12 | * No windows: Para rodar no netlogon deverá ser passado como parâmetro o servidor para autenticação e o '/silent' pra rodar em segundo plano. Caso não seja netlogon, o usuário irá digitar o servidor em uma das telas de diálogo; | 12 | * No windows: Para rodar no netlogon deverá ser passado como parâmetro o servidor para autenticação e o '/silent' pra rodar em segundo plano. Caso não seja netlogon, o usuário irá digitar o servidor em uma das telas de diálogo; |
13 | * O instalador realiza o getTest; | 13 | * O instalador realiza o getTest; |
14 | - * Se positivo, cria a árvore de diretórios e faz download do módulo principal e a biblioteca de comunicação (dll ou so); | ||
15 | - * Cria o serviço para o módulo e o inicia. | 14 | + * Se positivo, cria a árvore de diretórios e faz download do cacicService, do módulo principal e a biblioteca de comunicação (dll ou so); |
15 | + * Cria o serviço no windows e o inicia. | ||
16 | + | ||
17 | +#**Cacic Service** | ||
18 | + O cacic service funcionará apenas de sustentação do módulo principal, verificando de tempos em tempos a consistência dos binários e executando o módulo principal. | ||
16 | 19 | ||
17 | #**O módulo principal.** | 20 | #**O módulo principal.** |
18 | - * Após a instalação, o módulo principal seria iniciado, coletando as informações de configuração (getConfig) e baixando as bibliotecas necessárias, que seriam as .dll (windows) ou .so(linux), para realizar a coleta depois; | 21 | + * Após a instalação, o módulo principal seria iniciado, coletando as informações de configuração (getConfig) e baixando as bibliotecas necessárias, que seriam as .dll (windows) ou .so(linux), para realizar a coleta de software e hardware depois; |
19 | * Faz a verificação das bibliotecas; | 22 | * Faz a verificação das bibliotecas; |
20 | - * Inicializa a biblioteca e realiza a coleta; | 23 | + * Inicializa o módulo de coleta (gercols); |
21 | * Se for a primeira coleta ou existir diferença entre a coleta atual e a antiga, os dados serão enviados ao gerente a princípio pelo mesmo formato de XML do antigo (mas será modificado em uma nova release para json ou algo parecido); | 24 | * Se for a primeira coleta ou existir diferença entre a coleta atual e a antiga, os dados serão enviados ao gerente a princípio pelo mesmo formato de XML do antigo (mas será modificado em uma nova release para json ou algo parecido); |
22 | 25 | ||
23 | ##*A coleta* | 26 | ##*A coleta* |
24 | - Na instalação poderia ser setado um horário randomico entre 8 e 18 horas pra realizar a coleta diária e, também, pra não fazer todos rodarem ao mesmo tempo e congestionar o gerente. Caso o computador não esteja logado no horário estabelecido, a coleta será feita assim que for ligado. | ||
25 | -Nessa "rotina diária" seria realizado: | 27 | + A coleta é realizada a cada X horas, onde X é o valor estabelecido pelo gerente. O módulo principal será chamado dentro desse horário, chamando o módulo de coletas que coletará as informações de hardware pelo WMI ou, caso não consiga, pelos registros (regedit) e também de software pelos registros (regedit). |
28 | + Então, resumidamente, nessa "rotina diária" seria realizado: | ||
26 | 29 | ||
27 | * O procedimento de checagem das bibliotecas e etc, pra caso alguma esteja faltando ser realizado o download de novo; | 30 | * O procedimento de checagem das bibliotecas e etc, pra caso alguma esteja faltando ser realizado o download de novo; |
28 | * O getConfig; | 31 | * O getConfig; |
32 | + * A chamada do módulo de coletas; | ||
29 | * As coletas; | 33 | * As coletas; |
34 | + * O envio das informações, se existir diferença entre a coleta atual e a antiga. Os dados serão enviados ao gerente a princípio pelo mesmo formato de XML do antigo (mas será modificado em uma nova release para json ou algo parecido); | ||
30 | 35 | ||
31 | ##*Força Coleta* | 36 | ##*Força Coleta* |
32 | - Aqui vem minha maior dúvida, estava pensando em algum tipo de sincronia em tempo real. Estou dando uma pesquisada ainda, mas isso demandaria uma atualização também no gerente. Então a princípio ficaria o mesmo, seria realizado por meio do getTest de 5 em 5 minutos. Se houver alguma atualização, é realizado o getConfig e em seguida o procedimento solicitado, como forçar coleta ou executar o mapa. | 37 | + Aqui vem minha maior dúvida, estava pensando em algum tipo de sincronia em tempo real. Estou dando uma pesquisada ainda, mas isso demandaria uma atualização também no gerente. Então a princípio ficaria o mesmo, seria realizado por meio de uma solicitação do cacicService de getTest de 5 em 5 minutos. Se houver alguma atualização, é chamado o módulo principal executando o procedimento solicitado pelo gerente, como forçar coleta ou executar o mapa. |