====== 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.5.9.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 Geoserviços |Interno |1.6.0 |API de integração com o Geoserviços |Acesso aos dados do Geoserviços |
|Api do Monnae |Interno |1.15.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. |
|Indy |Externo |10 |Componentes de comunicação cliente/servidor |Envio de e-mails |
==== 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.5.9.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.5.9.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 Geagro |Diretório de instalação do software. |
|C:\Tecsystem\Tecsystem Geagro\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\Backup |Diretório de armazenamento de cópias de segurança dos arquivos de dados. |
|C:\Tecsystem\Tecsystem Geagro |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, devendo esta ser realizada através de softwares de terceiros. Devem ser mantidas cópias de segurança dos seguintes arquivos e diretórios:
|< 100% 35% 65% >|
^Nome do arquivo/diretório ^Descrição ^
|Configuracao.ini |Arquivo de configuração do software. |
|Geagro.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 | geagro_dev | console.cmd |
|Banco de dados vazio | vazio | geagro_vazio | migrate-bd-vazio.cmd |
|Produção | producao-c ou producao-d | C:\Tecsystem\Tecsystem Geagro\Dados\Geagro.fdb ou \\ D:\Tecsystem\Tecsystem Geagro\Dados\Geagro.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 primeiro 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/OpenJDKJRE|OpenJDK JRE Portable 32-bit]] foi incluído no pacote de instalação.
* JayBird 2.2.13: driver JDBC do Firebird (https://firebirdsql.org/en/jdbc-driver/).
Ao atualizar o JayBird, o pacote extraído deve ser o jaybird-full-x.x.x.jar. Ele contém todos os recursos para a conexão com o Firebird.
A versão do JayBird deve ser compatível a versão do OpenJDK.
====== Informações adicionais ======
Nenhuma.