Banco de Dados - Caché

Tecnologia Caché

Conheça um pouco mais sobre a tecnologia Caché e suas características.

por Equipe Linha de Código



Características

É Pós-Relacional - oferece todas as vantagens da tecnologia relacional, mas com maior poder de acesso, e sem as limitações de desempenho dos atuais bancos de dados relacionais.

A sua alta performance e escalabilidade para aplicações complexas de processamento de transações baseadas na Web e em interfaces gráficas de usuários (GUIs), tudo isso é possível devido ao modelo multidimensional.

O Caché oferece ainda a flexibilidade de ser um banco de dados com acesso otimizado - via SQL padrão, via objetos de alto desempenho e acesso multidimensional direto - o que traz um novo significado para a palavra "rapidez" em desenvolvimento de aplicações.

Arquitetura Web única - as páginas web são executadas no servidor de dados Caché, beneficiando-se do acesso rápido aos dados em processamento. Elas são fácil e rapidamente adaptadas porque todo o programa reside em um só lugar, além de serem escaláveis pois o servidor Web não fica sobrecarregado com grande quantidade de processos demandando muitos recursos.

Desenvolvimento fácil e rápido para a Web - As Caché Server Pages são páginas em HTML ou XML padrão, que podem ser criadas ou modificadas com qualquer editor de texto ou ferramenta popular de criação de páginas Web. As aplicações podem ser projetadas como uma série de páginas estáticas. A navegação através dessas páginas é tratada automaticamente pelo Caché e sua funcionalidade (a parte operacional em qualquer aplicação Web) é adicionada pela incorporação de Caché Application Tags ou de Caché Hyper-EventsMR.

Os Caché Application Tags (CATs) funcionam como rótulos em HTML, mas em vez de servidores de dados nos navegadores. Os CATs podem ser usados para uma série de funções, tais como:

  • buscar dados para preencher campos de formulários;
  • validar informações fornecidas pelos usuários no preenchimento de formulários;
  • transformar itens codificados ou calculados;
  • gravar informações na base de dados Caché;
  • controlar o HTML fornecido ao navegador, criando, por exemplo, loops para gerar linhas dinamicamente em uma tabela, ou as condições de inclusão ou exclusão em partes de uma página.

Gerenciamento de sessão simplificado para o processamento de transações - Um dos grandes desafios enfrentados pelos desenvolvedores é a natureza volátil da Web. Normalmente, depois que o servidor envia uma página ele a esquece completamente, o que pode dificultar a conclusão de transações. Os desenvolvedores de aplicações Web dedicam a maior parte de seus esforços para fazer com que uma série de acessos independentes à página pareça ser uma única sessão entre o navegador, o servidor Web e o banco de dados. Mas o Caché encapsula toda a programação do sistema em objetos de sessão Caché, tornando, assim, muito mais fácil o gerenciamento de sessão.

Fusão - Objetos e SQL

A tecnologia relacional, com uma linguagem de consulta simples, era praticamente um padrão. Apenas algumas poucas aplicações especiais utilizavam bancos de dados de objetos, que eram considerados lentos e difíceis de usar.

Mas com o surgimento da Web, a tecnologia de objetos integrou-se à corrente dominante.

As tecnologias de desenvolvimento para a Web, como por exemplo Java, tendem a ser orientadas a objetos, e assim muitos desenvolvedores descobriram que faz sentido combiná-las com um banco de dados com orientação a objetos. Além disso, os objetos promovem o desenvolvimento rápido, não só pela sua modularidade, mas também por oferecerem uma modelagem mais rica e intuitiva do mundo real.

Entretanto, um problema dos bancos de dados capazes de armazenar somente objetos sempre foi a falta de uma linguagem de consulta rápida e simples, tal como SQL. Os desenvolvedores de aplicações de alta performance precisam do que há de melhor nas duas tecnologias, relacional e orientada a objetos - eles precisam de um banco de dados pós-relacional rápido, escalável e confiável, que funcione de forma transparente e integrada tanto com objetos quanto com SQL.

O Caché trabalha com o melhor dos dois mundos: Objetos e SQL.

Fusão - Poder e Produtividade

O Caché combina um banco de dados de elevado desempenho com uma tecnologia para desenvolvimento rápido de aplicações complexas para ambientes Web e cliente/servidor. O Caché integra, harmonicamente, as tecnologias relacional e de orientação a objetos, para oferecer aos desenvolvedores profissionais as facilidades que eles mais desejam e precisam: a capacidade de produzir aplicações rápidas e escaláveis e a produtividade para desenvolvê-las rapidamente.

O poder vem do núcleo multidimensional do banco de dados Caché. Todos os dados no Caché são armazenados em eficientes vetores multidimensionais, que além de serem ideais para o armazenamento de dados complexos do mundo real, têm ainda um tempo de acesso incrivelmente rápido. É por isso que as aplicações desenvolvidas com o Caché podem crescer para atender muitos milhares de usuários, sem perder desempenho - isto é, são altamente escaláveis.

A produtividade vem do acesso aberto a dados. Cada uma das diversas tecnologias contidas no Caché é excelente para tarefas diferentes. A tecnologia de objetos é boa para a modelagem de dados complexos e para compatibilidade com a Web. A tecnologia relacional favorece a análise de dados e geração de relatórios. Além disso, os desenvolvedores trabalham melhor quando usam ferramentas já conhecidas. O acesso a dados aberto e transparentemente integrado oferecido pelo Caché é projetado para permitir que os desenvolvedores utilizem a ferramenta adequada, e tecnologia adequada, para a tarefa. Se a tarefa prevê algum desenvolvimento para a Web (o que é provável), o Caché aumenta ainda mais a produtividade com a tecnologia Caché Server Pages.

Performance Multidimensional

Um elemento chave responsável pela excepcional performance e escalabilidade do Caché é o seu servidor de dados multidimensionais, otimizado para processamento de transações.

O termo "multidimensional" significa que os dados podem ser indexados por tantos parâmetros quantos forem necessários: eles não estão limitados a linhas e colunas. Isto permite modelos de dados muito mais ricos do que os obtidos com a tecnologia relacional. Dados complexos podem ser armazenados e utilizados de uma forma muito mais natural e intuitiva.

Para os bancos de dados relacionais, é realmente difícil representar dados complexos, porque toda a informação precisa ser fragmentada de forma que caiba em tabelas planas bidimensionais. Quando a tecnologia relacional é usada para descrever dados do mundo real, há um empilhamento de tabelas e subtabelas, e uma grande quantidade de processamento é necessária para "remontar" a informação necessária para se completar as transações.

Dados multidimensionais, entretanto, não precisam ser "remontados" a partir de partes. O servidor de dados multidimensionais do Caché elimina a sobrecarga de processamento associada à tecnologia relacional, resultando em um incremento significativo da velocidade de aplicações transacionais.

Representação de dados multidimensionais

Figura 1: Representação de dados multidimensionais

As estruturas de dados multidimensionais são muito mais eficientes para modelar dados complexos.

Escalabilidade Multidimensional

Escalabilidade e performance andam de mãos juntas. Quanto mais rápido uma aplicação executar transações, mais transações ela poderá processar em um determinado tempo, e mais usuários serão atendidos.

O Caché armazena dados em vetores esparsos, o que torna seu servidor de dados compacto, capaz de armazenar eficientemente, no mesmo espaço em disco. Quanto mais rápido uma aplicação armazenar eficientemente, no mesmo espaço em disco, mais informações que outros bancos de dados puramente relacionais. Essa eficiência do Caché resulta em uma performance ainda melhor, e em menores custos de hardware.

Descongestionando o tráfego na rede - outra forma do Caché melhorar a performance e a escalabilidade em sistemas distribuídos está em sua abordagem única de cache de dados. Ao tirar vantagem da natureza multidimensional dos dados, o Caché reduz drasticamente o tráfego na rede. Menos tráfego significa que as aplicações ganham velocidade e podem atender mais usuários concorrentes.

Altíssima Conectividade

Acesso aberto a dados - a InterSystems possui a seguinte filosofia: os desenvolvedores têm maior produtividade quando podem utilizar ferramentas e tecnologias que já conhecem. É por isso que o Caché permite que seus dados, apesar de estarem armazenados em vetores multidimensionais, sejam acessados de diversas maneiras - acesso via SQL/ODBC, acesso via objetos, ou acesso multidimensional. Todos os modos de acesso a dados podem ser usados concorrentemente com os mesmos dados.

Esquema de funcionamento do Caché

Figura 2: Esquema de funcionamento do Caché

Devido a essa característica, todos os dados são automaticamente acessíveis tanto como objetos quanto como tabelas. Esta tecnologia única significa que não há necessidade de se fazer sincronização entre as definições de objetos e tabelas, e nem há sobrecarga de processamento para a conversão entre as duas formas. A arquitetura unificada de dados aumenta a produtividade e a performance

Conectividade relacional com rápido acesso via SQL: O acesso via SQL do Caché torna seus dados disponíveis para uma infinidade de aplicações que utilizam o SQL como linguagem de consulta. Mais do que isso, as consultas via SQL são rápidas no eficiente núcleo multidimensional do banco de dados Caché. O Caché possui também um SQL Gateway, que permite que aplicações Caché acessem dados armazenados em bases relacionais externas - o que é muito útil quando há necessidade de se integrar informações de diversas fontes.

Produtividade de desenvolvimento com o acesso via objetos: Hoje em dia, virtualmente todas as novas aplicações são desenvolvidas usando técnicas de modelagem de objetos. Objetos agregam informação e comportamento (ou seja, como a informação é utilizada) de forma intuitiva e sensata. Os desenvolvedores podem criar e usar estruturas de dados baseadas em características da nossa sociedade - "Cliente", "Nota Fiscal", "Livro" etc. -, que podem ser muito mais complexas e ricas do que strings, números inteiros ou outros tipos de dados baseados em características dos computadores. Os objetos são também modulares, com interfaces bem definidas. Portanto, podem ser reutilizados e compartilhados entre aplicações (por exemplo, um objeto "Cliente" pode ser comum a muitas aplicações diferentes), resultando em ganhos significativos de produtividade.

Esses ganhos de produtividade são a razão pela qual tantas ferramentas e tecnologias modernas de desenvolvimento são baseadas em objetos. O Caché suporta uma gama completa de conceitos de modelagem de objetos, e expõe objetos Caché como objetos ActiveX, Java ou C++, aumentando a produtividade ao permitir que os desenvolvedores utilizem ferramentas conhecidas. Os objetos Caché são também compatíveis com XML.

Máximo controle com o acesso multidimensional: O acesso direto aos dados multidimensionais permite que os desenvolvedores tenham controle absoluto sobre a forma como os dados são armazenados no Caché. Isto é especialmente útil para aplicações de processamento transacional que precisam integrar dados armazenados em outras bases multidimensionais.

Caché e XML: O Caché combina-se excelentemente com XML, que está rapidamente se tornando o método preferido para compartilhar dados entre diferentes aplicações. É possível usar objetos Caché como uma representação direta de documentos XML e vice-versa. O Caché oferece os seguintes recursos:

  • Classes Caché podem ser automaticamente projetadas como documentos XML, os quais podem ser servidos como arquivos ou como conteúdo on-line. As classes Caché também podem criar automaticamente seus próprios arquivos XML DTD (Document Type Definition).
  • Documentos XML podem ser transformados automaticamente em objetos Caché equivalentes. Conteúdo XML pode ser recebido a partir de arquivos, streams ou requisições HTTP, e pode ser validado usando XML DTD padrão.
  • O suporte a XML do Caché pode ser adaptado às necessidades especiais das aplicações desenvolvidas.

Desenvolvimento de Aplicação Web

Ambiente de desenvolvimento rápido de aplicações Web

O Caché é mais do que um banco de dados rápido. O Caché é também uma tecnologia de desenvolvimento rápido, especialmente para aplicações Web. Apesar de a Internet estar transformando aceleradamente o mundo dos negócios, alguns conceitos permanecem. Por exemplo, é ainda uma boa idéia ser o primeiro a entrar no mercado com um determinado produto ou serviço. Especialmente na Web, o empreendimento que entra primeiro no mercado freqüentemente o domina, desde que, é claro, continue a acompanhar a evolução do mercado eletrônico. Seja para lançar ou atualizar uma aplicação Web, o sucesso depende da capacidade de desenvolvimento rápido.

Com Caché Server Pages, é rápido desenvolver aplicações Web

- É rápido, porque as aplicações Web podem ser programadas usando ferramentas já conhecidas e com as quais se está familiarizado. Pode-se criar páginas CSP (Caché Server Pages) usando a ferramenta Caché para definição de classes ou criação de páginas CSP, usando ferramentas de mercado para a criação de páginas Web, ou mesmo um editor simples de texto.

- Rápido, porque com o Caché, as páginas CSP herdam todo o código necessário para o gerenciamento de sessão. O código de programação é derivado dos objetos de sistema fornecidos pela InterSystems; o desenvolvedor escolhe o nível de segurança desejado para a sessão, e o Caché se encarrega do resto.

- Rápido, porque é possível adicionar rapidamente funcio-nalidade às páginas por meio dos tags de aplicação CSP. Podem ser usados os tags que vêm com o Caché, ou po-dem ser desenvolvidos novos tags personalizados para necessidades específicas.

Alto desempenho de aplicações Web: O que acontece quando seu e-business dispara como um foguete?

Se a sua aplicação não for capaz de suportar a carga de usuários da Web, você poderá se tornar uma vítima do próprio sucesso. Performance e escalabilidade sempre foram importantes para os desenvolvedores de aplicações que fazem uso intensivo de transações, e levando em consideração o novo paradigma do e-business, são agora mais críticas do que nunca.

Uma arquitetura Web única

As páginas CSP (Caché Server Pages) são executadas no servidor de dados, junto dos dados que as páginas irão acessar. Ou seja, a lógica de negócios e os dados estão estreitamente acoplados, tornando a comunicação muito rápida. Outra vantagem importante desta abordagem é a maior escalabilidade. Já que o servidor Web não fica sobrecarregado processando a lógica de negócios, ele fica livre para lidar com mais requisições que chegam dos navegadores Web.

É um banco de dados rápido

Todas as aplicações Caché, tenham ou não uma interface Web, beneficiam-se da excepcional performance do núcleo multidimensional do banco de dados Caché. Comparações reais comprovam que as aplicações Caché são até 20 vezes mais rápidas do que aplicações baseadas em bancos de dados relacionais.

Equipe Linha de Código

Equipe Linha de Código