Arquitetura Updrive 5

De MSTECH wiki
Revisão de 14h26min de 3 de agosto de 2016 por Guilherme.versotti (Discussão | contribs) (Criou página com 'Na versão 5.0 a arquitetura foi redesenhada para a solução não depender de um servidor local. =Informações Gerais= == Ambientes utilizados == {| class="wikitable" |-...')

(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
Ir para: navegação, pesquisa

Na versão 5.0 a arquitetura foi redesenhada para a solução não depender de um servidor local.


Informações Gerais

Ambientes utilizados

Ambiente URL de Acesso Credenciais
Desenvolvimento
Testes
Ambiente de demonstração
Produção

Repositório de Versionamento

Ambiente: GITLab - Git

Nome:

Caminho:

Estrutura dos branches:

Visão de Componentes

Apresente um diagrama básico dos módulos do sistema, bem como suas fronteiras. Descreva sucintamente cada módulo que compõe o produto, seu objetivo e como foi construído (linguagens usadas, bancos de dados, etc.).

Foi estabelecido os seguintes módulos:

Logger
Licence
Watchdog (list_products)
Downloader (url, path, filename, hash)
Agente responsavel por gerenciar download de pacotes de um local (url) para um path (pasta). Deverá ser responsavel por gerenciar as tentativas de conexao com a url pedida, alem de garantir que o pacote nao esteja corrompido (um hash poderá ser passado como parametro, opcionalmente)
Installer (executable, install_arguments, uninstall_arguments) - service
Agente responsavel por instalar softwares, executaveis ou msi, recebe os parametros para instalação e executa o processo. Em caso de falha, executa os parametros para desinstalar
Inventory (list) - service
Agente responsavel por listar todo o inventario da maquina. Os campos devem ser mutaveis, ou seja, podem ser adicionados ou retirados ao longo do tempo
Writecache (open, close, list, exist) - service
Agente responsavel por comunicar-se com a DLL do WC para abrir e fechar imagem.
Locker (lock, unlock) - service
Agente responsavel por bloquear o login do usuário, permitindo que alterações na maquina sejam feitas e não haja iteração ou modificação do usuário
Tray - application
Aplicativo na bandeja do sistema responsável por interface com usuário para comunicar mensagens de atualização remota e permitir comando para abrir imagem mediante autenticação usuário administrador.
Manager(url_api) - service
Agente responsavel por gerenciar as atualizações da maquina. A lista de updates será recebida de uma api, o agente será responsavel por comunicar com agentes especificos para garantir que os updates foram baixados e instalados corretamente na maquina. Ele terá que gerenciar todas as sincronizações que ocorrerão. (Processo de baixar, bloquear, abrir imagem e de instalar as atualizações).

Diagrama de Classes

Decisões de Arquitetura

Persistência de dados:

[to-do]


Tecnologias de Integração:

[to-do]


Log: :

[to-do]


Padrão de Arquitetura utilizado: Se houve planejamento anterior, qual o padrão utilizado? Domain Driven Design (DDD) usando a estrutura MVC? Usa Webforms com outra arquitetura? Front-end e back-end são separados?

Tecnologia de Front-end: Se houver separação, qual tecnologia/framework foi empregada para o projeto? AngularJS, VUE, JQuery, uma composição deles? Qual padrão de codificação (estrutura de pastas, camadas) está sendo usado no projeto? Quais fatores levaram à decisão do framework e arquitetura definidas?

Tecnologia de Back-End: qual tecnologia/framework foi empregada para o projeto? ASP.NET, Java, NodeJS, uma composição deles? Qual padrão de codificação (estrutura de pastas, camadas) está sendo usado no projeto? Quais fatores levaram à decisão do framework e arquitetura definidas?

Framework de CSS: Está sendo utilizada uma ferramenta SASS? Qual framework está sendo usado? Bootstrap 3, Bootstrap 4, Foundation?

Configurações de Otimização de deploy: O código é minificado? O código está com ofuscação? No ASP.NET foi habilitado o bundle no web.config? Quais configurações para otimizar o código são feitas?

Outros aspectos: Fique à vontade para descrever outras considerações, o importante é deixar as decisões tomadas e padrões adotados bem documentados!

Fundamentações das decisões tomadas

Nesta seção, coloque todas as considerações das tomadas de decisão realizadas para o produto. Porque foi usada tal arquitetura? Porque essa separação de componentes? Porque houve refatoração? Descreva o máximo possível nesta seção para que o histórico das decisões seja armazenado para consultas futuras.