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.