1.1.1 Suporte aos bancos de dados: Oracle, MS SQL Server, PostgreSQL (open source), sobre o sistema operacional de preferência: Linux ou Windows | Isto permite a migração para qualquer banco de dados relacional que atenda ao padrão SQL com mínimo esforço | Outros sistemas no mercado que dependam de um único banco de dados, não permitem que o cliente mude para outro fornecedor. O ideal é que a empresa tenha liberdade para utilizar o banco de dados que melhor suporte suas necessidades de crescimento
1.1.2 Tratado como repositório de dados, sem criar dependências com "stored procedures" ou estruturas específicas de um determinado fornecedor, permitindo a migração de um banco de dados para outro sem maiores esforços de desenvolvimento (preparado inclusive para migração para novos produtos inovadores com alta escalabilidade como www.nuodb.com) | Não utilizar "stored procedures" libera capacidade de processamento do servidor de banco de dados para a execução de consultas e gravações de dados, aumentando a escalabilidade geral do sistema. As lógicas de programação utilizadas nas "stored procedures" podem ser distribuídas entre vários servidores de aplicativos conectados via gigabit ethernet e rodando códigos em JavaScript
1.1.3 Armazena além dos dados normais do sistema, todos os códigos do ERP, com suas regras de negócios e possíveis customizações | Isto permite a fácil atualização de todo o sistema de forma centralizada, e que será replicada automaticamente, sem intervenção humana, através da tecnologia de caches locais | Outros sistemas no mercado podem necessitar de grande esforço de gerenciamento de múltiplas versões do sistema rodando em localidades físicas distintas (grande risco), ou compartilhar diretórios através de redes de dados distintas com exigência de abundante largura de banda, ou ainda necessitar o uso de tecnologias de emulação de terminal
1.1.4 Alto desempenho para consulta de informações já agregadas de forma automatica através da tecnologia própria de "Tabelas de Soma". Informações de uma tabela de origem são selecionadas para participar de uma tabela destino que possui campos de agregação e outros com totais somados a partir da tabela origem. A manutenção destas tabelas destino ocorre de forma transparente e sem travar transações de escrita na tabela origem | Esta tecnologia funciona em qualquer banco de dados suportado, e traz vantagens de escalabilidade mesmo para bancos de dados que implementam funcionalidade similar, porém com grande comprometimento de performance durante as transações de escrita nas tabelas de origem
1.2.1 Acesso aos bancos de dados realizados diretamente através dos drivers nativos escritos em C, que oferecem o melhor desempenho por não trabalhar com camadas de abstração como: ODBC, JDBC, BDE, IDAPI, etc. | Estas camadas de abstração de bancos de dados implementam muitas vezes um subset das funcionalidades disponíveis no driver nativo escrito em C e podem comprometer performance para atender ao padrão de abstração
1.2.2 Permite balanceamento de carga entre múltiplos servidores de aplicativos rodando paralelamente, trazendo alta escalabilidade para o Sistema | Outros sistemas no mercado podem utilizar a tecnologia ultrapassada de duas camadas: Banco de Dados e Cliente executável em Windows/Linux, não existindo maleabilidade de balanceamento de carga sem dependência do banco de dados
1.2.3 Permite execução de códigos do ERP próximos ao banco de dados, sem necessitar usar "stored procedures", aumentando a escalabilidade da solução por aliviar a capacidade de processamento do servidor de banco de dados
1.3.1 Implementação nativa (não é Apache ou IIS) sobre TCP/IP, otimizado para atender a chamadas HTTP/S específicas para Sistema de Arquivos Virtual dos softwares, e que se instala de forma simples; uma vez instalado, realiza auto-upgrade de forma transparente sem intervenção humana | O servidor Web dos softwares é simples de ser instalado/atualizado pois não depende de outro processo que precise ser instalado ou administrado gerando dependências para área de TI do cliente | Outros sistemas no mercado podem depender de executável na estação cliente para rodar a interface com o usuário (não usa navegador de internet), as vezes possuem uma ou outra funcionalidade Web com algumas interações implementadas (isso é ruim pois existem dois padrões distintos de interação com o sistema). Quando possuem alguma solução realmente Web, normalmente seguem modelo tradicional com servidor Apache ou IIS centralizado com todo seu esforço de instalação e configuração, sem prever replicação entre servidores Web espalhados por localidades físicas distintas (filias) de forma simples e automatizada, sem sobrecarregar largura de banda
1.3.2 Pode ser executado em qualquer computador Windows, inclusive em filiais ou escritórios remotos; ou ainda num notebook de um profissional remoto; trazendo excelente desempenho aos usuários de navegadores de Internet que apontem para este servidor local, pois estará utilizando infraestrutura de rede local com alta largura de banda e baixa latência, eliminando a necessidade de funcionar através de tecnologias de emulação de terminal (Terminal Services / Remote Desktop / Citrix Metaframe) | Esta tecnologia é excelente, pois, sob demanda, o Servidor Web pode ser instalado de forma simples, aumentando a escalabilidade do Sistema e oferecendo excelente desempenho de servidor dedicado a um conjunto de usuários | Outros sistemas de mercado normalmente trabalham com executável Windows como interface para o usuário final. Isso cria dependência de link com alta largura de banda para funcionar com boa performance. Localidades remotas são atendidas por emuladores de terminal (que exigem estrutura de servidores para suportar a execução de cada sessão com usuários) ou possuir bancos de dados replicados em suas estruturas. Isso também é ruim, pois eleva os investimentos e custos com suporte e manutenção. Se o cliente opta por trabalhar com bancos de dados replicados em filiais, ele depende de uma instalação complexa que exige grande esforço da equipe de TI para instalar e manter atualizado, além de ter que configurar, manter e monitorar rotinas de integração entre o banco da filial e o da matriz, inserindo enormes riscos às rotinas de integração que são necessárias para quem opta por este modelo
1.3.3 Se comunica com Servidor de Aplicativos sobre TCP/IP em protocolo compactado e encriptado que exige baixa largura de banda (128kbps, exemplo: modem 3G, ADSL) e pode ter latência alta (até 800 ms, exemplo: links via satélite). Isto simplifica e barateia os investimentos em links de acesso a Internet | Outras soluções de mercado normalmente dependem de links com alta largura de banda e baixa latência, isso aumenta significativamente os custos com comunicação. Ambientes remotos, podem exigir instalações de bancos de dados ou o uso de emuladores de terminais
1.3.4 Possui tecnologia de cache local, que replica e mantém sincronizada as informações cadastrais do sistema, regras de negócios, códigos do ERP..., permitindo executar rotinas sem necessidade de consultar o banco de dados, além de aumentar a escalabilidade, pois diminui a exigência de processamento no banco de dados, já que não é necessário realizar "joins" para trazer informações já existentes no cache local, bem como não é necessário realizar "selects" sob demanda para trazer informações cadastrais também já presentes no cache local | Toda esta tecnologia funciona sem necessidade de instalação de banco de dados local independente
1.3.5 Utiliza a linguagem de programação: JavaScript, linguagem de script mais utilizada no mundo, padrão utilizada para o desenvolvimento de aplicativos para Web. Todo o código do ERP está implementado em JavaScript, e está disponível para visualização e extensão por desenvolvedores que possuam a devida permissão de acesso
1.4 Navegador de Internet (nos terminais dos usuários)
1.4.1 100% das interfaces dos softwares são feitas em HTML puro com JavaScript, sem a necessidade de plugins (não usa Flash, Java, ActiveX,...), e rodam de forma ubíqua em qualquer navegador de Internet moderno, inclusive os de dispositivos móveis como Smartphones e Tablets (iOS: iPhone, iPad / Android). Componentes visuais consistentes entre os vários módulos e processos do sistema, proporcionam ambiente extremamente amigável ao usuário: Hiperlinks com drill-down, sugestão de complemento, exportação de dados para múltiplos formatos, navegação simultânea por múltiplos processos e relatórios. Destaque para o formato nativo HTML para os relatórios, que permitem interação com seu conteúdo | Esta tecnologia é excelente, pois não limita o usuário a interagir com o sistema através de um aplicativo específico para Windows, lhe dando mobilidade e recursos de navegação exclusivos
3.6.1 O Campo CHAVE possui um número inteiro que identifica o registro em todo o modelo de dados (não é exclusivo da tabela). De posse de uma chave, um usuário consegue descobrir a operação original sem precisar associar a nenhuma outra propriedade
3.6.2 O campo CLASSE vincula o registro à árvore de CLASSEs
3.6.3 O campo VERSAO determina o número da última transação no banco de dados que tocou este registro. Também é através deste campo que é realizado o controle de travamento de registros de forma otimista: o registro só é travado no momento em que toda a transação está no momento final de gravação (não mantendo a trava enquanto não estivermos próximos de finalizar). Se dois usuários estiverem mexendo num mesmo registro, a transação que conseguir finalizar primeiro tem o sucesso, e a outra falha forçando intervenção do usuário