====== Configurações de ambiente ====== As configurações de ambiente definem as principais características dos ambientes de desenvolvimento, testes e execução (produção) do software. Tais configurações devem ser observadas (e atualizadas) sempre que uma nova versão do software for desenvolvida, para que este registro seja compatível com a última versão do software. ===== Ambiente de desenvolvimento ===== ==== Software ==== * **Plataforma:** Win32; * **Sistema operacional:** Microsoft Windows 7 ou superior; * **SGBD:** Firebird 2.1.7.x; * **Linguagem de Programação:** Delphi; * **Ferramentas de desenvolvimento:** CodeGear Delphi for Microsoft Windows Versão 11.0.2627 (Delphi 2007); * **Ferramenta de administração de banco de dados:** IB Expert; * **Google Earth** [[https://www.google.com.br/earth/download/gep/agree.html|Baixar]] ==== Componentes de software ==== |< 100% 15% 10% 10% 35% 30% >| ^ Nome ^ Tipo ^ Versão ^ Descrição ^ Usado para ^ |IB Express |Externo |--- |Componentes de acesso à dados (recompilados internamente) |Acesso à banco de dados. | |MX OutlookBar |Externo |1.0.0 |Criação de barras de ferramentas. |Menu lateral do software. | |SASTEC |Interno |2.0.0 |Chave de ativação. |Restringir o acesso ao sistema apenas à clientes licenciados. | |LockBox |Externo |1.0.0 |Biblioteca de criptografia |Criptografar senhas de usuários. | |Api do Monnae |Interno |1.11.0 |Api de integração com Monnae |Acesso aos dados do Monnae. | |TeeChart |Externo |7.0.10 |Biblioteca de gráficos |Exibição de gráficos. | ==== Hardware ==== * Computador compatível com os softwares necessários. ==== Outros ==== Nenhum requisito adicional necessário. ===== Ambiente de testes ===== ==== Software ==== * **Plataforma:** Win32; * **Sistema operacional:** Microsoft Windows 7 ou superior; * **SGBD:** Firebird 2.1.7.x; * **Google Earth** ==== Hardware ==== * Computador com as especificações mínimas de hardware e software definidas para o ambiente de execução (produção). **Observação:** O Ambiente de testes deve conter apenas os softwares definidos para o ambiente. A cada novo teste, o ambiente precisa ser "limpo" para que possa reproduzir com o máximo de fidelidade as configurações do ambiente de execução (produção). ===== Ambiente de execução ===== ==== Software ==== * **Sistema Operacional:** Microsoft Windows 7 ou superior; * **SGBD:** Firebird 2.1.7.x; * **Google Earth** ==== Hardware ==== * **Processador:** Processador de 2 GHz dual-core ou superior; * **Memória:** 4 Gigabytes (GB) de memória RAM ou superior; * **Disco Rígido:** 4 Gigabytes (GB) de espaço livre em disco; * **Processador gráfico:** Compatível com DirectX 11 ou OpenGL 2.0; * **Resolução da tela:** mínimo de 1366 x 768 pixels. ==== Outros ==== * Conexão de alta velocidade com a internet. ===== Estrutura de diretórios (Ambiente de execução) ===== ==== Servidor ==== A seguinte estrutura de diretórios deve ser criada no servidor: |< 100% 35% 65% >| ^Diretório ^Descrição ^ |C:\Tecsystem |Diretório de instalação padrão. | |C:\Tecsystem\Temp |Diretório de armazenamento de arquivos temporários | |C:\Tecsystem\Backup |Diretório de armazenamento de cópias de segurança dos arquivos de dados | |C:\Tecsystem\Tecsystem Geoserviços |Diretório de instalação do software | |C:\Tecsystem\Tecsystem Geoserviços\Dados |Diretório de armazenamento de arquivos de dados | ==== Cliente ==== A seguinte estrutura de diretórios deve ser criada na estação de trabalho (cliente): |< 100% 35% 65% >| ^Diretório ^Descrição ^ |C:\Tecsystem |Diretório de instalação padrão. | |C:\Tecsystem\Tecsystem Geoserviços |Diretório de instalação do software | ==== Informações adicionais ==== Caso exista na empresa um servidor de dados dedicado, apenas o banco de dados deve ser implantado no servidor. Neste caso, a localização dos arquivos no servidor deve seguir as normas estabelecidas pelo departamento de TI da empresa e o software deve ser implantado como uma estação de trabalho (cliente) nos demais computadores. As estruturas de diretórios descritas acima são criadas automaticamente pelos respectivos programas de instalação. ===== Cópia de segurança dos dados ===== Este software não implementa nenhum mecanismo de cópia de segurança dos dados, exceto durante a atualização automática do banco de dados. Uma cópia de segurança efetiva ser realizada através de softwares de terceiros. Devem ser mantidas cópias dos seguintes arquivos e diretórios: |< 100% 35% 65% >| ^Nome do arquivo/diretório ^Descrição ^ |Configuracao.ini |Arquivo de configuração do software. | |Geoservicos.fdb |Banco de dados do software. | ===== Processo de atualização ===== A implantação de novas versões nos computadores dos clientes é parcialmente automatizada através dos programas de instalação, como descrito acima. Tanto o executável, quanto os arquivos auxiliares e o banco de dados são instalados ou atualizados pelos instaladores. ==== Banco de dados ==== Todo o processo descrito abaixo é válido somente para atualização nos servidores. Nas novas instalações e nas atualizações dos clientes, nenhuma alteração é feita no banco de dados. === Backup === O programa de instalação do servidor deve fazer um backup local do banco de dados antes da atualização. Caso o backup falhe, a atualização não é executada. Por padrão o backup é feito em :\Tecsystem\Backup indicando o número da versão antes da atualização. === Migração === Cada migração é um script SQL a ser executado no banco de dados. A atualização é feita com a ajuda da ferramenta [[http://www.mybatis.org/migrations/|MyBatis Migrations]]. Ela é responsável por verificar o estado atual do banco de dados e executar os scripts pendentes. === Organização do repositório === Todos os scripts, arquivos de configuração e dependências estão localizados na pasta **dat\migrations** dentro do repositório de código. O seu conteúdo foi organizado da seguinte forma: * Pasta **bin**: contém os scripts que executam o MyBatis, extraídos do pacote oficial; * Pasta **java**: contém o JRE, necessário para rodar as migrações; * Pasta **lib**: contém as bibliotecas do MyBatis, extraídas do pacote oficial; * Pasta **workspace**: contém arquivos que o MyBatis precisa para gerenciar as mudanças nos bancos de dados. Esta pasta foi gerada pelo comando [[http://www.mybatis.org/migrations/init.html|init]]. * Pasta **drivers**: drivers JDBC; * Pasta **environments**: arquivos de configuração para cada ambiente; * Pasta **scripts**: scripts SQL para inicializar e aplicar as migrações; * Pasta **hooks**: scripts SQL executados automaticamente antes ou após as migrações. Esta estrutura de pastas, junto com o script de atualização em produção (abaixo) deve ser incluída no pacote de instalação do servidor. === Ambientes === O MyBatis permite a definição de múltiplos ambientes. Cada ambiente é definido por um arquivo de configuração indicando o caminho do banco de dados. Convencionou-se usar um [[https://firebirdsql.org/rlsnotesh/config-db-alias.html|alias]] do Firebird para cada ambiente, quando for possível. Assim podemos conectar a vários bancos de dados sem a necessidade de atualizar constantemente os arquivos de configuração. Além disso, foram criados alguns scripts para facilitar a migração em cada ambiente. |<100%>| ^Ambiente ^ Configuração do MyBatis ^ Alias / caminho ^ Script ^ |Desenvolvimento/testes | development | geoservicos_dev | console.cmd | |Banco de dados vazio | vazio | geoservicos_vazio | migrate-bd-vazio.cmd | |Produção | producao-c ou producao-d | C:\Tecsystem\Tecsystem Geoserviços\Dados\Geoservicos.fdb ou \\ D:\Tecsystem\Tecsystem Geoserviços\Dados\Geoservicos.fdb | migrate-producao.cmd | == Desenvolvimento / testes == A migração manual é feita pelo script console.cmd com os comandos: * **migrate up**: executas todas as migrações pendentes * **migrate down**: quando o desenvolvedor gera os comandos para desfazer as migrações, este comando pode ser usado para reverter o banco de dados para um estado / versão anterior. Reverter as migrações pode causar perda de dados e **não** deve ser feito em produção. == Banco de dados vazio == O banco vazio deve ser atualizado durante o fechamento da versão para ser implantado em novas instalações. O script workspace\hooks\fechamento_da_versao.sql é executado automaticamente após a atualização para acertar o número da versão no banco vazio e deixá-lo pronto para a instalação, conforme a documentação em http://www.mybatis.org/migrations/hooks.html. == Produção == No ambiente de produção o script será executado pelo programa de instalação. O script procura o banco de dados nas unidades C: e D: e atualiza o banco encontrado. Como a migração é automatizada, o instalador gerará um arquivo de log para verificar se a atualização foi bem sucedida. === Dependências === Java: o [[https://portableapps.com/apps/utilities/java_portable|Java Portable]] foi incluído no pacote de instalação. JayBird: driver JDBC do Firebird (https://firebirdsql.org/en/jdbc-driver/). ====== Informações adicionais ====== Nenhuma.