Banco de Dados - Caché

InterSystems Caché: Um Banco de Dados de Terceira Geração

Uma das características importantes do Caché é permitir uma integração entre dois mundos: SQL e Objetos. A sua arquitetura unificada de dados constrói uma camada de descrição para objetos e tabelas relacionais que são mapeadas diretamente em sua estrutura multidimensional.

por Equipe Linha de Código



Introdução

O acelerado crescimento da Internet comercial vem modificando a forma como os negócios são feitos na Web. Nesse ambiente competitivo, a complexidade dos projetos e o tempo exíguo para executá-los torna o trabalho de todo desenvolvedor uma missão crítica.

Retornamos a um conhecido problema da engenharia de software: como evoluir de um processo artesanal de desenvolvimento de programas para um processo industrial? A palavra-chave é componentização. Montadoras de automóveis compram componentes de seus fornecedores; fabricantes de computadores utilizam componentes desenvolvidos pelas indústrias de semicondutores, como microprocessadores e chips de memória. Os projetos de software baseados em componentes seguem a mesma idéia.

Na construção de um software baseado em componentes, não começamos a escrever o código do marco zero. Temos um conjunto de componentes com interfaces bem definidas, construídos para executar tarefas específicas. Um programador não precisa conhecer o funcionamento de cada “peça”, da mesma forma que um engenheiro projetando um computador não precisa saber como é construída a unidade de ponto flutuante do microprocessador que utiliza. Toda essa complexidade fica encapsulada dentro do componente, enquanto trabalhamos em um nível de abstração mais alto.

Um ponto extremamente importante em qualquer projeto é o banco de dados. Os sistemas de banco de dados relacionais são predominantes no mercado, mas apresentam dissonância na integração com aplicações orientadas a objeto (OO): o paradigma da orientação a objeto é baseado na construção de objetos que agregam atributos e comportamento, enquanto o paradigma relacional é baseado no armazenamento de dados. Os bancos de dados OO não precisam decompor os objetos em linhas de tabelas para armazená-los, mesmo que eles representem complexas estruturas de dados. Por isso apresentam uma melhor performance.

O BD Pós-Relacional Caché

Uma das características importantes do Caché é permitir uma integração entre dois mundos: SQL e Objetos. A sua arquitetura unificada de dados constrói uma camada de descrição para objetos e tabelas relacionais que são mapeadas diretamente em sua estrutura multidimensional. Assim, aplicações relacionais podem coexistir como novos componentes de negócio construídos com a tecnologia OO.

Entre as classes disponíveis no Caché, duas são utilizadas como superclasses de negócio na hierarquia de quase todas elas: são as classes persistentes (possuem representação permanente no armazenamento do banco de dados e cada objeto recebe um identificador único) e as classes seriais, que só podem ser armazenadas no banco de dados quando embutidas em um objeto persistente, e são freqüentemente utilizadas para representar relacionamentos do tipo “todo-parte”.

Construímos a definição de classes no Banco de Dados Caché utilizando o Arquiteto de Objetos. Essa ferramenta permite que o desenvolvedor monte visualmente a estrutura de sua classe. Quando essa classe é compilada, o Caché gera automaticamente as tabelas relacionais necessárias para representar sua estrutura. Uma classe pode também ser criada a partir de um arquivo de definição chamado CDL (Class Definition Language).

No Caché, os métodos das classes são escritos utilizando a linguagem Caché Object Script (COS). Para cada atributo público de uma classe são criados automaticamente os métodos de acesso, no estilo getxxx e setxxx. Uma técnica muito eficiente é utilizar os recursos de persistência dos objetos no Caché e implementar as regras de negócio na sua linguagem de programação favorita. Podemos também gerar automaticamente o código Java para classes definidas no Caché.

Apesar de enfatizar a linguagem Java neste artigo, o Caché trabalha também com várias outras tecnologias, como as linguagens C++, Delphi, Visual Basic e PHP, e os padrões ActiveX, COM, CORBA etc. O Caché possibilita também a visão relacional da base de dados; para tal, estão disponíveis ODBC e JDBC.

Construindo Páginas Dinâmicas

Além do COS, o Caché possui uma outra linguagem: o Caché Server Pages (CSP). O CSP permite a desenvolvedores de páginas Web e diagramadores construir e manter páginas com conteúdo dinâmico.

O servidor Web é configurado para redirecionar as chamadas URLs com extensão .csp para o Caché, que passa a trabalhar também como um servidor de aplicações. Na primeira vez que uma página CSP é endereçada, o Caché interpreta o seu conteúdo e cria uma classe responsável por atender às chamadas subseqüentes. Se a página CSP for modificada, a classe será reconstruída na próxima chamada.

O CSP usa delimitadores semelhantes ao XML e scripts na linguagem COS para incluir a lógica da aplicação que pode ser mantida nos objetos armazenados no Caché, que são endereçados pelos scripts. Cada requisição Web é encapsulada em dois objetos, request e response, facilitando o recebimento de parâmetros e a formatação do resultado. Podemos utilizar o objeto session para armazenar o contexto de uma transação que pode se estender por várias requisições. Tudo é executado dentro do Caché, garantindo a propriedade de seu código. O browser cliente recebe apenas o conteúdo HTML.

Carício Afonso Junior Sales Engineer da InterSystems

Equipe Linha de Código

Equipe Linha de Código