A Borland ao longo dos anos vem ganhando cada vez mais respeito no mercado Java. A companhia, que tornou o JBuilder o IDE mais utilizado do mundo, mantém mais uma frente Javanesa: O JDataStore. Além de ser “Pure Java”, o banco possui uma característica curiosa: seu arquiteto, Sérgio Cardoso, é um dos brasileiros que trabalham na Borland USA.

Para utilização de um banco de dados em Java, é necessário que se utilize a JDBC. Semelhante ao modelo ODBC da Microsoft, a JDBC é uma “ponte” entre o aplicativo e o banco de dados. O JDBC e o ODBC têm por base a mesma ideia: deixar transparente para o aplicativo qual banco de dados que está sendo utilizado.

A API JDBC é dividida em quatro classes de acesso. Cada uma destas classes possui características únicas que definem como o banco será acessado, apresentando vantagens e desvantagens, dependendo do tipo da aplicação. Veja abaixo um pequeno resumo dos tipos de acesso:

  • Tipo1: JDBC-ODBC - A aplicação Java se conecta à um driver ODBC e este se conecta ao banco. A vantagem é a ampla gama de banco de dados que oferecem conexões via ODBC. O ponto negativo é a baixa performance e o fato de a ODBC ser instalada em cada máquina cliente.
  • Tipo2: Native-API partly Java technology-enabled driver – O driver JDBC se comunica diretamente com o client do banco. É mais veloz do que o tipo1 pela ausência da ODBC. Como no tipo1, o cliente do banco precisa estar instalado em cada máquina cliente.
  • Tipo3: Pure Java Driver for Database Middleware – A aplicação se comunica com uma camada intermediária, que traduz as chamadas e repassa para o banco de dados. Elimina a necessidade de o cliente do banco estar instalado na máquina cliente. Entretanto, não é recomendável para aplicações de pequeno porte.
  • Tipo4: Direct-to-Database Pure Java Driver. A mais rápida de todas. A aplicação se comunica diretamente com o banco de dados, sem a necessidade de intermediário, através do protocolo nativo do banco de dados.

O driver nativo JDBC para o JDataStore 6 é classe 4, assim como o do Oracle e do novo InterBase 7.

JDataStore6: Banco de Dados 100% Java, Ágil, Simples, Móvel e Distribuível

O JDataStore é relacional e transacional, com suporte a StoredProcedures, UDF´s (User Defined Functions), conexões simultâneas e concorrentes. Apesar de conter esses recursos é um produto compacto, podendo até ser executado em dispositivos wireless. É portável e multiplataforma, já que foi desenvolvido totalmente em Java. Suporta o padrão ansi92, tornando o acesso aos dados praticamente sem mistérios para quem já usa algum outro banco relacional.

Um dos principais focos do JDataStore na versão 6 é possibilitar a criação de aplicações em dispositivos wireless, permitindo sua utilização em plataformas como Compaq Ipaq, Sharp Zaurus e outros que suportem a plataforma Jeode (PersonalJava e EmbeddedJava). O Palm OS ainda não é suportado pelo JDS. Segundo Sérgio Cardoso, arquiteto do JDataStore, “Quando o PalmOS disponibilizar pelo menos 8Mbytes para processos Java, poderemos rodar nestes modelos”.

Pontos Fortes

  • Baixo custo de investimento: Uma licença para 10 usuários custa em torno de US$ 1000,00.
  • Perfomance: Por se tratar de um banco de dados simples, o JDS apresenta boa performance.
  • Fácil Distribuição: É possível distribuir os recursos necessários do engine do JDS num disquete de 1.4 Mb. Distribuir o Run time em formato Jar file do JDS consome apensa 1 Mb.
  • Desenvolvimento: O JDataStore possui integração nativa com o JBuilder, fornecendo um ambiente mais produtivo do que em outras plataformas de desenvolvimento. Isso não impede que o JDataStore seja acessado por outras ferramentas.

Resumo das Características Básicas do JDataSore

  • Totalmente escrito em Java;
  • Roda em dispositivos com apenas 16Mbytes de memória;
  • Suporta versões Java 1.1.8 à 1.4;
  • Certificado para rodar em Windows (XP, 2000, NT, 98 SE), Linux (RedHat 7.x, Mandrake 7.x), Solaris (7, 8) e Mac OS X;
  • Suporte à padrões (JavaBeans, SQL 92, stored procedures, foreign keys, JDBC 3.0 scrollable, updatable cursors, batch updates);
  • Alta Performance;
  • Suporte a transações;
  • Suporte à múltiplos processadores;
  • Recuperação automática de erros;
  • Requer mínima administração;
  • Fácil distribuição;
  • Um único arquivo .jar file contém toda funcionalidade;
  • Pode ser distribuído junto à aplicação;
  • Arquivo de dados tem o mesmo formato para todas as plataformas de instalação do produto e é até 50% menor que um com a mesma estrutura gerado em um banco de dados similar;

Algumas das Melhorias na Versão 6.0

  • Maior suporte aos padrões adotados pelo mercado;
  • Maior suporte as propriedades da API JDBC e Implementações adicionais para interfaces JDBC 2 e JDBC 3;
  • Mudanças para tipos de dados FLOAT, DATE e TIME;
  • Implementação de novas funções de sistema;
  • Suporte a Subqueries ;
  • Suporte a Foreign keys ;
  • Suporte a Table expressions;
  • Suporte a Stored procedures e UDFs (User Defined Funcion);

Sobre as Stored Procedure e UDFs

  • Stored Procedures: A maioria dos servidores de banco de dados utilizam o TransactSQL e o PL-SQL para implementação de Stored Procedures. No JDataStore 6 a linguagem de procedures é o Java, de forma que todos os recursos de funções de sistema, mecanismos de conversão, funções com tipos primitivos, bem como manipulação de Strings e outras classes Java, podem ser utilizados.
  • UDF (User Defined Functions): Como no InterBase, é possível criar funções personalizadas para o JDS. Com isso, as possibilidades para tratamento dentro do banco se tornam praticamente infinitas. A desvantagem, assim como qualquer UDF, é a queda de performance quando o código realiza uma chamada à função.

Utilizando o JDataStore pela primeira vez

O JDataStore está disponível juntamente com a instalação do JBuilder para download no site da Borland no endereço http://www.borland.com/products/downloads/download_jdatastore.html.

A instalação é simples e rápida, bem como a utilização dos seus recursos. O banco acompanha um utilitário para manutenção visual, chamado JDataStore Explorer (Figura 1).

figura
Figura 1 – JDataStore Explorer

Para criar um novo banco de dados selecione o menu File->New. Na janela de opções, indique a versão do banco a ser criada, defina o diretório e dê um nome para o arquivo de dados. A extensão do banco será .jds. (Figura 2).

figura
Figura 2 - Criando o Arquivo JDS na versão 6.0

Uma tabela pode ser construída através do menu Tools/Create Table. A janela para criação é intuitiva, deixando qualquer um a vontade. Os dados da tabela estão disponíveis na guia “View”, conforme mostra a Figura 3.

figura
Figura 3 –Manipulaçãoda tabela criada

Entrevista

Com Sérgio Cardoso (Engenheiro de Produtos da Borland USA)

Durante os últimos nove anos, Sérgio Cardoso teve a oportunidade de participar no desenvolvimento de vários releases do Borland C++, JBuilder, Borland Application Server e trabalhar no desenvolvimento do Borland JDataStore. Esteve presente este ano em São Paulo, na 1º BorCon Brasil, ministrando uma palestra sobre o JDS.

O que é o JDataStore?

JDataStore é um banco de dados relacional totalmente desenvolvido em Java. Usuários do JBuilder Enterprise e do Borland Enterprise Server contam com a tecnologia do JDataStore nestes produtos. O JDataStore também é distribuído em uma versão standalone. Ele integra-se de maneira transparente ao JBuilder, nossa solução para desenvolvimento Java.

Qual a missão do JDataStore?

O objetivo principal do JDataStore está em facilitar o desenvolvimento de aplicações Java que necessitem de um banco de dados com alta performance, instalação transparente, manutenção zero e pouco uso de memória. Procuramos garantir que o JDataStore seja compatível aos padrões de mercado tais como J2EE, JDBC e SQL.

Por sua versatilidade e robustez, o JDataStore tanto pode ser usado em dispositivos móveis como em aplicações distribuídas.

A portabilidade do ambiente Java permite também que o mesmo código e arquivos de dados de uma aplicação que use JDataStore possa ser utilizado sem a necessidade de portes e conversões. O mesmo arquivo .jar com cerca de 1Mbyte contendo todo a funcionalidade do produto pode ser usada em Windows, Linux, Solaris e Mac OS X.

Existem concorrentes do JDS?

Cloudscape e PointBase são dois outros bancos de dados Java no mercado norte-americano. Depois da compra da Informix pela IBM, não se ouve muita coisa a respeito do futuro do Cloudscape. PointBase está oferecendo hoje recursos que já existem no JDataStore há vários releases.

Como funciona o JDataStore dentro de dispositivos Móveis e como seria a relação J2ME e JDataStore?

Boa parte do que se fala hoje sobre J2ME está concentrado no MIDP. Muitos dos modelos de telefone celular disponíveis hoje possuem cerca de 2Mbytes para execução de programas.

Estamos trabalhando para o mercado de dispositivos com 16Mbytes de memória RAM ou mais, que oferecem suporte para Personal Java hoje e ao CDC/Personal Profile no futuro, como os modelos baseados na arquitetura ARM, rodando Pocket PC. O iPaq da Compaq possui modelos com 32Mbytes de memória RAM. Desses 32Mbytes metade pode ser utilizado como área de armazenamento e outra metade para execução de aplicações. A mesma quantidade de memória está disponível nos modelos Zaurus da Sharp que usam Embedded Linux como sistema operacional.

A Nokia possui o Communicator 9210i que é uma mistura de PC e telefone celular. Conseguimos executar aplicações com o JDataStore neste equipamento. Mas enfrentamos baixa velocidade nas transferências de dados por estarem baseados em redes GSM. Esses equipamentos deverão ter uma aceitação muito maior quando suportarem redes GPRS que oferecem velocidades maiores para transferência de dados.

Vai ser possível um dia utilizar JDataStore com Palm´s?

Quando o PalmOS disponibilizar pelo menos 8 Mbytes para processos Java, poderemos rodar nestes modelos.

É simples trabalhar com repositórios locais JDataStore e depois realizar a sincronização com outros servidores de banco de dados?

Sim, isso é possível. O JDataStore possui uma solução "lightweight" para sincronização de dados entre dispositivos remotos e servidores de dados.

O JDataStore deixará de ser relacional para tornar-se um banco de dados orientado à objetos?

Você pode armazenar instâncias de objetos em uma tabela com o JDataStore. Todo o suporte para a serialização existe hoje. Também contribuímos com tecnologia de mapeamento relacional/objeto na implementação do CMP do Borland Enterprise Server (Enterprise Java Beans).

Como funciona o mecanismo de licença do JDS?

O JDataStore possui basicamente três tipos de licença: Developer, Local Server e Server.

Quando você compra o JBuilder Enteprise ou o Borland Enterprise Server (BES), você também está adquirindo uma licença para desenvolvimento do JDS.

Quando uma aplicação desenvolvida com o JDataStore precisa ser distribuída você pode adquirir licenças para um servidor local onde, por exemplo, o arquivo de dados será acessado pelo mesmo usuário em uma mesma máquina.

Caso você precise que a base de dados seja acessada por diferentes usuários, você poderá utilizar o JDataStore Server em um servidor por usuários remotos. A licença de Servidor permite que até 10 conexões simultâneas sejam feitas a uma mesma base de dados. Novas licenças podem ser adquiridas e adicionadas.

O que podemos esperar no futuro do JDataStore?

Estamos explorando os avanços em .NET, segurança e dispositivos móveis.

Conclusão

Assim como o Interbase da Borland, o JDataStore é uma solução para quem busca um banco leve, portável, rápido e de simples manutenção. Seu baixo custo, aliado as vantagens de ser PureJava, faz dele uma solução única para alguns tipos de aplicação.