Revista Do Linux  
EDIÇÃO DO MÊS
  Ambientes Gráficos
  Atualidade
  Capa
  Crusoe
  Desenvolvimento Web
  Divirta-se
  Entrevista
  Estudo de Caso
  Ferramentas
  Flagship
  Linha de Comando
  Segurança
  Tecnologia

Usuários do Clipper, bem-vindos ao Linux
Com o FlagShip, o enorme acervo de sistemas escritos em Clipper terá sua continuidade assegurada


Francisco O. Neto
neto@brc.com.br

Alexandre de Alexandri
alexandre@inso.com.br

Jorge Somers
jhsomers@somers.com.br

Ao longo dos anos, a linguagem CA-Clipper tornou-se tão popular no Brasil, que o mercado brasileiro acabou sendo sua maior base instalada. E vale lembrar que, ao lado do Cobol, CA-Clipper é uma das linguagens mais difundidas e estudadas em todos os tempos em todo o mundo.

Inúmeras empresas começaram sua informatização utilizando programas escritos em Clipper, criando um mercado de trabalho muito promissor para os profissionais e desenvolvedores de aplicativos. Os sistemas escritos em Clipper são fáceis de desenvolver e manter, e ainda são largamente utilizados, seja por empresas ou por desenvolvedores de aplicativos.

Para garantir a continuidade desse uso já está disponível no mercado brasileiro uma ferramenta de desenvolvimento de sistemas para ambiente Linux chamada FlagShip. Trata-se de uma ferramenta totalmente compatível com Clipper, que facilita o reaproveitamento de sistemas desenvolvidos nessa linguagem, pois exige apenas uma recompilação dos fontes.

FlagShip é uma linguagem de programação e ferramenta de desenvolvimento. Como outros compiladores, é projetado principalmente para desenvolvedores de software profissionais. Mas devido à sua interface simples é também perfeitamente satisfatório para os semiprofissionais e para usuários avançados que precisam criar aplicações de banco de dados com esforço mínimo de programação. Graças a sua compatibilidade total com o Clipper, permite portar aplicações DOS para qualquer sistema Linux.

Não há nenhuma necessidade de aprendizagem se o interessado já estiver familiarizado com qualquer dialeto de xBase, como dBase, FoxBase, Clipper etc. Há milhões de programadores bem treinados que há anos vêm usando essas ferramentas fáceis mas com sintaxe poderosa. Todas podem ser utilizadas diretamente com o FlagShip.

A Brasil Informática, uma empresa pioneira na utilização de FlagShip, constatou essa viabilidade e migrou todos os softwares de gestão empresarial (contabilidade, controle patrimonial/ativo, escrita fiscal, estoque, faturamento, financeiro, folha de pagamento, inventário, lucro presumido) desenvolvidos em Clipper/DOS para FlagShip/Linux. Ainda no primeiro semestre deste ano, esse pacote será comercializado em todo o território brasileiro através de parceria com a Conectiva.

Após a migração ainda passamos a contar com uma série de recursos novos, como a possibilidade de executar o software a distância através de uma linha telefônica com velocidade de rede local. Para tanto, basta usar o SSH do Linux (uma espécie de Telnet que compacta e criptografa os dados) com um significativo aumento de performance.

A experiência adquirida com o uso do FlagShip nessa migração foi tão expressiva que hoje, além de comercializá-lo, a Brasil Informática dispõe de uma equipe de programadores dedicada a migrar aplicativos de terceiros e prestar consultoria em FlagShip.

Abaixo estão descritas em mais detalhes algumas das principais características do FlagShip:

  • Linguagem totalmente compatível com o CA-Clipper.
  • Maior segurança para a base de dados .DBF, pois a perda de índices praticamente desaparece (o processamento é feito no servidor, ou seja, não transitam dados pela rede).
  • Roda em ambiente 32 bits.
  • É muito mais rápido em tempo de execução, pois durante a compilação o Flagship converte em "C" e depois compila/linkedita com o "C" do sistema operacional.
  • As estações de trabalho podem ser: terminal burro, estações Linux, Windows ou Novell.
  • Não há limite de tamanho de programa.
  • Visual FlagShip (telas GUI) para Linux com xWindows.
  • FS_WEB: permite desenvolvimento de aplicações para ambiente Web programando em FlagShip e fazendo a comunicação via CGI.
  • Possui aproximadamente 150 comandos a mais que o Clipper.
  • RDD para o FlagShip acessar diversos bancos de dados relacionais (acesso nativo).

O compilador do FlagShip

De uma maneira semelhante a outros compiladores no estado da arte (como C, C++ e Clipper), FlagShip requer vários passos de compilação.

  • Pré-processa os fontes, solucionando #[x]command, #[x]translate, #define, #ifdef, #include e outras diretivas de processamento. A origem pode tanto ser .PRG, .FMT, ou .C.
  • Compila os fontes de pré-processamento e cria um código .C puro*.
  • Invoca o compilador C específico do sistema e produz um código nativo (.O).
  • Invoca o linker para ligar os objetos estáticos ou dinâmicos e está pronto o executável.

Todos esses passos são executados automaticamente, mas você pode controlar o comportamento especificando parâmetros e/ou executando quaisquer dos passos separadamente. Obviamente um arquivo Makefile também é suportado.

Para poder produzir um verdadeiro executável nativo (incluindo objetos mais biblioteca de sistema), todos esses passos são executados diretamente no sistema operacional designado.

A biblioteca do FlagShip

Embora muitos dos termos de um .PRG sejam traduzidos diretamente para C, uma biblioteca adicional é fornecida com FlagShip e tem funcionalidade semelhante à libc.a da linguagem C ou à Clipper.lib do DOS. A biblioteca do FlagShip inclui todas as funções padrão para manusear o escopo de variáveis dinâmicas, macros, input, output, acesso de banco de dados e assim por diante.

Para muitos sistemas operacionais são fornecidas bibliotecas estáticas e dinâmicas. Para aqueles em que a linkedição dinâmica não está disponível ou não é padrão (como o antigo Linux a.out), a biblioteca estática está disponível.

O desenvolvedor de software pode decidir como o executável deverá ser linkado. Normalmente o executável que acessa bibliotecas dinâmicas (similar à .dll em MS-Windows) tem um tamanho significativamente menor (que economiza espaço de disco e tempo de carga), mas é mais sensível para o sistema operacional. Por outro lado, usando um executável linkado estaticamente, todo o código já está embutido, assim, é melhor para a distribuição dos aplicativos e utilizável em vários releases do mesmo sistema operacional.

Ferramentas de terceiros

Você pode estender a funcionalidade do FlagShip standard até mesmo usando pacotes adicionais, disponíveis através da Inso, empresa que distribui o Flagship, ou de terceiros. Alguns desses pacotes são shareware ou de domínio público, outros são vendidos. Existem ferramentas para a criação de executáveis a serem disponibilizados em servidores Web (FS_WEB), acesso a banco de dados relacionais, Nantucket-Tools2 e CA-Tools3 e assim por diante.

FS_WEB

O FS_WEB é uma biblioteca que disponibiliza uma série de novos comandos/funções para a criação de páginas Html sem a necessidade de um profundo conhecimento dos comandos Html, mais conhecidos por Tag.

O FS_WEB também permite trocar informações entre um formulário de Internet e um executável FlagShip utilizando apenas um simples comando CGIGETFIELD ("Nome") ou mesmo variáveis ambientais como CGIGETENV ("Remote_Host").

Dentro da biblioteca existem funções para criação de menus e gráficos de barra, como demonstram os exemplos das figuras 1 e 2.

RDD (Acesso a RDBMS)

O RDD é composto por um analisador que verifica todos os comandos de acesso à base de dados .DBF. Ele altera ou inclui as linhas necessárias no programa através de uma biblioteca que traduz os comandos de acesso acima em comandos SQL e de utilitários para conversão automática dos dados .DBF para o banco de dados relacional.

Características da solução

  • Possibilidade de dados distribuídos e multiplataforma.
  • Recurso de réplica e distribuição de dados.
  • Servidor escalável de alta performance.
  • Implementação de procedimentos de gerenciamento e segurança, como por exemplo backup on-line, restore, log de transações, etc.
  • O acesso é nativo (não utiliza ODBC).
  • Conversão automática dos arquivos DBF para a base de dados relacional, inclusive campos memos e conteúdos criptografados.
  • Nível de customização mínimo (quando existente).
  • Acesso a diversos bancos relacionais (CA-Ingres II, Oracle, Sybase etc).
  • Documentação do RDD em Html com descrição de todos os comandos de acesso Clipper/FlagShip, os mais variados exemplos e esclarecimento das principais dúvidas dos clientes.

* FlagShip não deve ser visto como um "tradutor de PRG para C" ou "um compilador" . O código C intermediário e os objetos não podem ser linkados sem a biblioteca do FlagShip (veja abaixo), da mesma forma que "puro C" ou "puro Clipper" não podem ser linkados sem as bibliotecas C ou bibliotecas Clipper. A biblioteca do FlagShip (estático ou dinâmico) provê a funcionalidade de uma linguagem em .PRG.

Demo em flagship para o cd do mês

Milton Mizuki da Inso Informática (www.inso.com.br), montou um programa demo para esta edição da Revista do Linux, reaproveitando um código Clipper e compilando em FlagShip. É um programa básico de cadastro, com operações básicas de inclusão, exclusão e alteração, consulta e relatórios. Há uma opção desabilitada para uso com bancos relacionais através de comandos SQL via RDD. Só que neste pequeno programa exemplo só estão ativos bancos .DBF. Ele será encontrado em /mnt/cdrom/artigos/flagship/, e neste diretório há o arquivo demofs.tgz. Antes de copiá-lo para o winchester, mude para o seu diretório "home" e crie dois novos diretórios: "prgdemo" e "dbfexp". Em seguida mude para o diretório "prgdemo" e copie o arquivo do CD.

Após descompactá-lo, basta digitar na linha de comando ./cadastro. Dependendo do tipo de terminal utilizado podem aparecer caracteres estranhos em torno dos boxes criados na tela. A seqüência fica assim:

Monte o CD-ROM
# mount /mnt/cdrom
Em seguida vá para o seu diretório "home"
# cd "home"
Crie os dois novos diretórios
# mkdir prgdemo
# mkdir dbfexp
Vá ao diretório prgdemo
# cd prgdemo
Copie o arquivo do CD
# cp /mnt/cdrom/artigos/flagship/demofs.tgz .
Descompacte o arquivo
# tar xfvz demofs.tgz
Execute o aplicativo
# ./cadastro

Para corrigir o código de página, conseguindo exibir os caracteres dos desenhos de boxes corretamente, vá até www.inso.com.br e clique em FlagShip/Dicas e Rotinas no menu. Lá você encontrará todas as informações necessárias.

 

A Revista do Linux é editada pela Conectiva S/A
Todos os Direitos Reservados.

Política de Privacidade