Mudanças entre as edições de "Arquitetura Classpad"

De MSTECH wiki
Ir para: navegação, pesquisa
(Criou página com '=Informações Gerais= == Ambientes utilizados == {| class="wikitable" |- ! Ambiente ! URL de Acesso ! Credenciais Admin |- | Desenvolvimento | http://dev-mscro.mstech.com.br...')
 
(Decisões de Arquitetura)
Linha 43: Linha 43:
  
 
=Decisões de Arquitetura=
 
=Decisões de Arquitetura=
Descrever os seguintes itens:
 
  
'''Persistência de dados''': Como foi resolvida no produto a persistência? Há banco relacional e não relacional? Quais são os bancos? Como é tratamento de sessão?
+
==== Persistência ====
 +
Através de banco de dados relacional
 +
Criação do banco de dados PostgreSQL nos servidores e em Realm nos dispositivos
  
'''Tecnologias de Integração:''' Quais integrações existem com o produto? Como é essa integração? Via API, Webservices trafegando XML, serviços Windows? Há trabalho manual para tráfego de dados, como importação? Descreva aqui todas as integrações que a ferramenta possui.
+
==== Tecnologia de integração ====
 +
Será realizada por meio de troca de mensagens entre os dispositivos e o servidor Datacenter e/ou servidor na escola
 +
Tráfego via WSS entre servidores e dispositivos
 +
Tráfego via HTTPS entre servidores e entre servidores e dispositivos
  
'''Log: ''': Como é feito o log? Está em base relacional ou não relacional? Como é feita a consulta dos dados dessa log? Qual o escopo da log (é uma log de transações, log do servidor, etc.). Na arquitetura, a log é tratada por uma camada específica do sistema ou está misturada no código?
 
  
'''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?
+
==== Log ====
 +
Implementado log de negócio (para rastreabilidade das ações do usuário) e de log técnico para análise de funcionamento e falhas
 +
Para os logs utilizamos arquivos de texto gerenciado pelo LOG4J2
 +
Para crash report usaremos Crashlytics (Fabric.io)
  
'''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?
+
==== Padrão de arquitetura utilizado ====
 +
Utilizamos Servidores HTTPS RESTful na arquitetura JAX-RS para gerenciamento de APIs.
 +
Utilizamos o padrão de arquitetura DDD (Domain Driven Design) na aplicação web para ambiente de administração do servidor.
 +
Utilizamos o padrão “thin client” para os dispositivos.
 +
Utilizamos o padrão PubSub na comunicação durante uma sessão de aprendizagem
 +
Utilizamos o protocolo MDNS (Bonjour) para descoberta do servidor da escola
 +
Utilização de Jetty 9 para servidor HTTPS e WSS.
 +
Utilização de Hibernate 4 para comunicação com banco de dados PostgreSQL e SQLite.
 +
Utilização de JMDNS para Discovery na rede.
  
'''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?
+
==== Tecnologia de Front-end ====
 +
Utilização do design nativo Android
 +
Utilização de front end simplificado nos ambientes de Administração
 +
Aplicação de Material Design no Android e Angular-JS na Web
  
'''Outros aspectos:''' Fique à vontade para descrever outras considerações, o importante é deixar as decisões tomadas e padrões adotados bem documentados!
+
 
 +
==== Tecnologia de Back-end ====
 +
Arquitetura padrão para servidores Java e clientes Android
 +
Utilização de Java 7 e Android 4.4 ou superior
 +
 
 +
 
 +
==== Deploy ====
 +
Distribuição dos clientes android via Google Play
 +
Instalação dos servidores via instalador
 +
Pacotes de instalação APK versionados e assinados conforme padronização
  
 
=Fundamentações das decisões tomadas=
 
=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.
 
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.

Edição das 12h36min de 27 de maio de 2016

Informações Gerais

Ambientes utilizados

Ambiente URL de Acesso Credenciais Admin
Desenvolvimento http://dev-mscro.mstech.com.br admin / 123456
Testes http://tst-mscro.mstech.com.br admin / ms@cro
Testes http://tst-mscro.mstech.com.br admin / ms@cro
Homologação Externa http://hom-mscro.mstech.com.br Informação exclusiva do Devops/GTI
Produção http://mscro.mstech.com.br Informação exclusiva do Devops/GTI

Repositório de Versionamento

Ambiente: GITLab - Git

Nome: MSCRO

Caminho: https://gitlab.mstech.com.br/mscro/app-mscro.git

Estrutura dos branches: Código mantido no tronco, porém mantemos 2 branches para os clientes SP e RJ.

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.).

Decisões de Arquitetura

Persistência

Através de banco de dados relacional Criação do banco de dados PostgreSQL nos servidores e em Realm nos dispositivos

Tecnologia de integração

Será realizada por meio de troca de mensagens entre os dispositivos e o servidor Datacenter e/ou servidor na escola Tráfego via WSS entre servidores e dispositivos Tráfego via HTTPS entre servidores e entre servidores e dispositivos


Log

Implementado log de negócio (para rastreabilidade das ações do usuário) e de log técnico para análise de funcionamento e falhas Para os logs utilizamos arquivos de texto gerenciado pelo LOG4J2 Para crash report usaremos Crashlytics (Fabric.io)


Padrão de arquitetura utilizado

Utilizamos Servidores HTTPS RESTful na arquitetura JAX-RS para gerenciamento de APIs. Utilizamos o padrão de arquitetura DDD (Domain Driven Design) na aplicação web para ambiente de administração do servidor. Utilizamos o padrão “thin client” para os dispositivos. Utilizamos o padrão PubSub na comunicação durante uma sessão de aprendizagem Utilizamos o protocolo MDNS (Bonjour) para descoberta do servidor da escola Utilização de Jetty 9 para servidor HTTPS e WSS. Utilização de Hibernate 4 para comunicação com banco de dados PostgreSQL e SQLite. Utilização de JMDNS para Discovery na rede.


Tecnologia de Front-end

Utilização do design nativo Android Utilização de front end simplificado nos ambientes de Administração Aplicação de Material Design no Android e Angular-JS na Web


Tecnologia de Back-end

Arquitetura padrão para servidores Java e clientes Android Utilização de Java 7 e Android 4.4 ou superior


Deploy

Distribuição dos clientes android via Google Play Instalação dos servidores via instalador Pacotes de instalação APK versionados e assinados conforme padronização

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.