Requisitos técnicos e arquitetura
O uso do Client Conecta requer o atendimento a requisitos técnicos e operacionais mínimos, garantindo compatibilidade, segurança e desempenho na integração da biblioteca.
Arquitetura
Define as características técnicas da biblioteca utilizada na integração.
Tipo de biblioteca:
• Windows: Biblioteca dinâmica (DLL – Dynamic Link Library).
• Linux: Biblioteca compartilhada (SO – Shared Object, arquivo .so).
Compatibilidade:
Arquitetura: x86 e/ou x64 (32 e 64 bits), para ambos os sistemas operacionais.
Framework: nativo (C/C++).
Interface: API pública com função documentada nos itens abaixo, idêntica para Windows e Linux.
Sistema Operacional
Define as plataformas suportadas e dependências necessárias para execução da solução.
- Windows: Windows 10 ou superior;
- Linux: Distribuições baseadas em glibc, com versão da glibc igual ou superior a 2.27 (piso de compatibilidade definido pela toolchain de compilação, baseada em Ubuntu 18.04 LTS). Ver tabela de compatibilidade de distribuições Linux a seguir.
Compatibilidade de distribuições Linux
| Família | Versões compatíveis (glibc ≥ 2.27) | Versões não compatíveis |
|---|---|---|
| Ubuntu | 18.04 até 24.04/24.10 e posteriores | 16.04 e anteriores (glibc < 2.27) |
| Debian | 10 (Buster), 11, 12, 13 | 9 (Stretch) e anteriores |
| RHEL / CentOS / Rocky / Alma | 8.x, 9.x | 7.x (glibc 2.17) — INCOMPATÍVEL |
| Fedora | 28 em diante | 27 e anteriores |
| Amazon Linux | Amazon Linux 2023 (glibc 2.34) | Amazon Linux 2 (glibc 2.26) — INCOMPATÍVEL |
| openSUSE | Leap 15.1+ / Tumbleweed (rolling) | Leap 15.0 e anteriores |
| SUSE Linux Enterprise (SLES) | SLES 15 SP1+ | SLES 12 e anteriores — INCOMPATÍVEL |
| Oracle Linux | 8.x, 9.x | 7.x (glibc 2.17) — INCOMPATÍVEL |
| Linux Mint | 20 e posteriores (base Ubuntu 20.04+) | 19.x e anteriores |
| Raspberry Pi OS | Bullseye / Bookworm | Buster e anteriores |
| Arch Linux / Manjaro | Rolling release (sempre compatível) | — |
| Alpine Linux | Não suportado (usa musl libc, não glibc) | Todas as versões |
- O fator determinante de compatibilidade é a versão da glibc instalada no sistema de destino, e não a versão do kernel Linux (o kernel possui política de compatibilidade retroativa mais permissiva que a glibc);
- Amazon Linux 2 (glibc 2.26) não é compatível — está uma versão abaixo do piso mínimo (2.27). Caso algum componente rode em EC2/Lambda com Amazon Linux 2, o binário não funcionará sem rebuild;
- Dispositivos com Linux embarcado (Raspberry Pi, BeagleBone, Orange Pi, NVIDIA Jetson, módulos i.MX/Yocto, OpenWrt/Buildroot, entre outros) costumam utilizar builds customizados de glibc/kernel, ou bibliotecas alternativas (musl/uClibc). A compatibilidade nesses dispositivos não é garantida apenas pela tabela acima, devendo ser validada com o SDK/toolchain oficial do fabricante da placa (Yocto, Buildroot, imagem do fabricante).
Dependências
- Windows: A solução Client Conecta possui apenas um arquivo do tipo header (.h) como pacote adicional. Não é necessário a instalação ou adição de frameworks externos (ex.: Visual C++ Redistributable, .NET Runtime);
- Linux: A solução Client Conecta possui apenas um arquivo do tipo header (.h) como pacote adicional. Não é necessária a instalação de frameworks ou bibliotecas externas, além da glibc já presente nas distribuições compatíveis listadas na tabela acima (glibc ≥ 2.27).
Permissões
Define os acessos necessários para o funcionamento da biblioteca.
Acesso a disco
- Leitura: Permitida nos diretórios específicos onde a solução estiver instalada.
— Windows (ex.: C:\AppData\DLL\input).
— Linux (ex.: /opt/clientconecta/input).
- Escrita: Permitida nos diretórios específicos onde a solução estiver instalada.
— Windows (ex.: C:\AppData\DLL\output).
— Linux (ex.: /opt/clientconecta/output).
Registro (Windows) / Configurações do sistema (Linux)
- Windows: A solução Client Conecta não manipula ou altera chaves do registro do sistema operacional.
- Linux: A solução Client Conecta não manipula ou altera arquivos de configuração do sistema operacional (ex.: /etc), não instala serviços systemd, nem requer privilégios de superusuário (root) para sua operação padrão.
Segurança e controle de versão
Define a estratégia de versionamento da solução e o impacto das atualizações na integração.
A solução usa versionamento no formato:
MAJOR.MEDIUM.MINOR
MAJOR
Indica alterações significativas na solução que impactam compatibilidade ou comportamento da API/DLL (Windows) ou API/SO (Linux) Client Conecta.
Exemplos:
- Alteração de contratos de integração (assinatura de métodos, parâmetros obrigatórios ou retornos);
- Reestruturação arquitetural relevante;
- Descontinuação de funcionalidades existentes;
- Adequações obrigatórias a novos padrões regulatórios.
MEDIUM
Representa evolução funcional da solução, mantendo compatibilidade com versões anteriores.
Exemplos:
- Inclusão de novas funcionalidades ou operações;
- Suporte a novos meios de pagamento;
- Adição de novos parâmetros opcionais;
- Melhorias de performance;
- Ajustes de comportamento sem quebra de contrato.
Atualizações dessa categoria normalmente não exigem mudanças obrigatórias no integrador, mas podem requerer adaptação para uso de novas funcionalidades.
MINOR
Indica ajustes de menor impacto voltados à estabilidade e manutenção da solução.
Exemplos:
- Correções de defeitos (bugs);
- Melhorias internas sem impacto funcional;
- Austes de mensagens, logs ou tratamento de erros;
- Correções de segurança sem alteração de interface;
- Pequenas otimizações.
Atualizações dessa categoria são consideradas seguras e não afetam a integração existente.
Exemplo de versionamento
| Versão | Descrição |
|---|---|
| 1.0.0 | Versão inicial estável da solução |
| 1.1.0 | Nova funcionalidade adicionada |
| 1.1.1 | Correção de defeito |
| 2.0.0 | Alteração incompatível com versões anteriores |
Updated 16 days ago