Revista Do Linux
EDIÇÃO DO MÊS
 Gráficos
 Comandos Avançados
 Portáteis

 Capa
 Entrevista
 CD
 Distro
 GNU
 Evento
 Depoimento
 Programação

 

Dados em alto desempenho

O Faircom Server oferece características de integridade de dados, segurança, recuperação de dados e um sistema de backup dinâmico.

Recentemente recebemos da empresa Faircom Corporation uma cópia para avaliação da Faircom c-tree Plus. Basicamente, a c-tree Plus é uma biblioteca de funções C para acesso a arquivos de dados e índices. A c-tree Plus trabalha em conjunto com o Faircom Server; os dois produtos em conjunto fornecem uma plataforma robusta para desenvolvimento de aplicações de bancos de dados em um ambiente cliente/servidor.

O Faircom Server

Antes de falarmos sobre a c-tree Plus, temos de conhecer um pouco este outro produto.

O Faircom Server (FS) é um servidor de banco de dados de alto desempenho. Ao tentar minimizar o tráfego na rede e utilizar threads, o FS permite que você mantenha grandes quantidades de dados armazenadas com uma boa performance de acesso.

Outra vantagem do FS é a sua portabilidade. A Faircom Corporation oferece o produto para Windows, Mac, Novell, OS/2 e vários UNIX, entre eles o Linux, permitindo que uma aplicação possa ser usada em um ambiente altamente heterogêneo. Vale a pena relembrar que a Faircom vem desenvolvendo produtos para Linux desde 1995.

O Faircom Server oferece características de integridade de dados, segurança, recuperação de dados e um sistema de backup dinâmico. A instalação é simples: basta copiar o conteúdo de um diretório do CD para o disco rígido e modificar as permissões dos arquivos. Simples e rápido, mas a Faircom poderia ter fornecido, pelo menos, um script shell.

Após a instalação tudo funcionou. O servidor é bastante fácil de configurar e você não demora mais do que alguns minutos para rodar o servidor.

A c-tree Plus

Após instalar o Faircom Server podemos nos dedicar ao que é importante, a biblioteca c-tree Plus. A c-tree Plus é uma biblioteca de funções para manipulação de arquivos de dados e índices. Com essa biblioteca você pode "criar um banco de dados de escala industrial", como dito no material promocional da Faircom.

Segundo a empresa, a c-tree é capaz de prover acesso rápido a arquivos de dados através do uso de índices de árvores binárias com algoritmos proprietários (não necessariamente uma vantagem) de cache e compressão de dados. Além disso, a c-tree tem uma característica bastante interessante: ela é capaz de contornar limitações do sistema de arquivos da plataforma onde está sendo executada. Por exemplo, ela "dá um jeitinho" de abrir mais arquivos do que o normalmente permitido pelo sistema operacional. Com a c-tree é também possível incluir capacidades de recuperação de dados à sua aplicação, tornando-a muito mais robusta quase que automaticamente. Uma aplicação que utilize a c-tree pode optar por utilizar as funções de baixo nível da Faircom ou usar as funções ISAM (Indexed Sequential Access Method, ou Método de Acesso Seqüencial Indexado). A última opção é preferível, já que o ISAM é um método de acesso-padrão utilizado por diversos sistemas de bancos de dados.

Embora a c-tree possa ser usada sozinha, é em conjunto com o Faircom Server que as suas capacidades realmente aparecem. A c-tree trabalha com modelos; cada um deles tem vantagens e desvantagens e depende exatamente da aplicação a que se destina.

Modelos de c-tree Plus

A c-tree vem em sete modelos operacionais. A funcionalidade básica é a mesma para os modelos, mas cada um deles destina-se a necessidades bastante específicas. Alguns dos modos mais avançados, como o CUSTOM, exigem um projeto realmente grande para serem utilizados, mas provêem capacidades bastante interessantes.

Modelo autônomo (stand-alone): neste modelo a aplicação é ligada a uma biblioteca que tem toda a funcionalidade de acesso aos arquivos de dados, ou seja, todo o processamento é feito pela biblioteca. A biblioteca permite que a aplicação seja multiusuário (vários processos podem acessar um mesmo arquivo de dados simultaneamente) ou monousuário (apenas um processo tem acesso ao arquivo de dados). Tem todas as características da c-tree Plus, com exceção das capacidades de segurança.

Modelo-padrão cliente/servidor: de funcionamento semelhante ao modelo autônomo, o modelo-padrão cliente/servidor difere do anterior apenas no fato de que a biblioteca não possui funções de acesso a arquivos de dados, mas sim funções de comunicação com o servidor Faircom.

Modelo LOCLIB: este modelo é um misto dos dois anteriores. Uma aplicação compilada com este modelo da biblioteca pode tanto acessar os dados no disco local como conectar-se a um servidor remoto. Este modelo é útil quando se deseja utilizar o disco local para arquivos temporários, por exemplo.

Modelo autônomo com threads: este modo é análogo ao modelo autônomo, com a vantagem de suportar múltiplas threads de execução.

Modelo cliente/servidor com threads: a API de múltiplas threads da c-tree Plus pode ser utilizada sozinha para a criação de aplicações multi-threaded. Porém, em conjunto com as funções de acesso ao servidor Faircom, esse modelo de biblioteca permite a criação de aplicativos de banco de dados extremamente poderosos e robustos. O Faircom Server possuiu um sistema próprio de manuseio de threads. Isso porque até pouco tempo muitos sistemas operacionais não possuíam suporte a threads nativas. No Faircom Server isso permite que as aplicações sejam bastante portáveis, pois a mesma API é usada em todas as plataformas, independentemente da existência do suporte a threads nativas.

Modelo CTUSER: este modelo operacional da c-tree Plus é interessante; ele permite que você inclua funcionalidades novas no servidor. Você pode criar funções novas para modificar a lógica do servidor. É possível utilizar este modelo para implementar funções específicas de uma dada plataforma, por exemplo. Basicamente o Faircom Server permite a implementação de qualquer funcionalidade possível de ser implementada com a linguagem C.

Modelo CUSTOM: este modelo é o que torna o Faircom Server tão diferente dos outros servidores de bancos de dados existentes. Através do modelo CUSTOM é possível alterar o próprio servidor de banco de dados.

A Faircom fornece o Faircom Server SDK, que é um produto para o desenvolvimento do próprio banco de dados. Isso permite ao desenvolvedor incorporar novas funcionalidades diretamente dentro do servidor. Ao tornar possível o acesso ao código-fonte do banco de dados, a Faircom dá um nível de controle do banco sem paralelo no mundo dos bancos comerciais. Com o SDK um engenheiro de software pode utilizar a API com threads para criar servidores personalizados específicos para uma aplicação. Esse modelo permite que você mova o processamento de algumas funções para o cliente ou para o servidor de acordo com a necessidade a uma maior performance. Esse é um modo extremamente complexo e que requer bom planejamento. Além disso, a Faircom exige que o desenvolvedor assine um contrato com a empresa antes de poder desenvolver com o SDK.

Conclusões

O pacote completo da Faircom é uma boa ferramenta para o desenvolvimento de aplicativos de bancos de dados. A API c-tree fornece capacidades bastante poderosas para uma aplicação em C/C++. A instalação poderia melhorar bastante com a inclusão de um verdadeiro programa de instalação ou, pelo menos, de um script Shell, mas, tecnologicamente falando, a Faircom tem um produto bastante completo e poderoso.

Roberto Maragato Teixera
maragato@conectiva.com.br

 

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

Política de Privacidade
Anuncie na Revista do Linux