Atenção: esse artigo tem um vídeo complementar. Clique e assista!

Artigo no estilo: Curso

Do que trata o artigo

Ilustrar um exemplo de aplicação que faça uso do modelo de servidor Embedded do Firebird, possibilitando a execução em praticamente qualquer dispositivo como CD-ROM, Pen Drives, relógios, Smartphones e muito mais.

Para que serve

Perfeito para pequenas aplicações que não necessitam de uma alta disponibilidade e um número elevado de usuários, sendo uma excelente escolha para criar catálogos de demonstração de produtos, agendas ou pequenos utilitários.

Em que situação o tema é útil

O modelo de servidor Embedded por ser muito leve e permitir ser executado em praticamente qualquer tipo de dispositivo, minimiza os problemas de distribuição e configuração das pequenas aplicações, tornando-se a solução ideal para apresentações de software e pequenas aplicações.

Resumo do DevMan

Criatividade é uma das palavras chave em desenvolvimento, então, o que acha de apresentar o seu produto diretamente de um CD-ROM ou Pen Drive? Ou que possa ser baixado e executado simplesmente com um clique? Com certeza isto pode agregar valor ao seu produto, visto que é uma forma bem profissional de demonstrar a facilidade de portabilidade do seu software.

Distribuir suas aplicações pode se tornar um grande problema, que pode se tornar evidente se por um eventual motivo, você é pego de surpresa para apresentar seu software a um possível cliente. A relação deste problema se deve a distribuição do seu aplicativo, que pode incluir a alteração de arquivos de configuração (.xml, .cds, .ini), instalar e configurar servidores de banco de dados, indicar o caminho do banco, executar scripts, entre muitas outras coisas. Em um ambiente multicamadas isso pode piorar, pois ainda temos o trabalho extra de registrar o servidor ou serviço do servidor de aplicação, inicializá-lo, configurar firewall e tudo isso para uma simples demonstração do seu produto. Provavelmente você perderá muito tempo realizando todas estas tarefas, muitas vezes prejudicando a imagem do seu software, por aparentar ser algo extremamente complexo de funcionar. Imagine você apenas colocar sua aplicação dentro de um Pen drive ou CD-ROM, executá-la e fazer toda a demonstração sem ter que instalar nada. Este é exatamente o escopo deste artigo, apresentar o Firebird Embedded, juntamente com uma aplicação bastante útil, que permite rodar o servidor juntamente com a aplicação, sem instalação.

Aplicações embarcadas têm tido um crescimento relativamente alto, ainda mais com as questões de mobilidade que também estão em alta. Desenvolver uma aplicação embarcada faz com que o seu software seja capaz de ser executado em qualquer tipo de dispositivo, dispensando a instalação, configuração, distribuição de arquivos e muitas outras etapas. A princípio isto parece complicado, afinal imaginando esse cenário, nós já começamos a pensar o que necessariamente devemos mudar ou configurar em nossa aplicação para que seja possível gravar dados em dispositivos portáteis. A resposta para essa pergunta é, nada. Toda a característica de Embedded neste caso concentra-se no servidor de banco de dados, que suporta este recurso. Claro que para desenvolver aplicações embarcadas, poderíamos muito bem fazer a persistência dos dados em arquivos .txt ou .xml. A grande questão é que em nenhum destes tipos de arquivos teríamos as validações de Constraints, o uso completo de SQL, criação de objetos de banco de dados, sem contar na facilidade de transpor estes dados já gravados para um modelo de servidor que suporte vários usuários como o Classic/Super Server.

Nota do DevMan

O SuperServer é mais recente que a versão Classic, é uma implementação multiclientes e multitarefas. A arquitetura SuperServer pode servir muitos clientes ao mesmo tempo usando o recurso de multiprocessamento ou "threads", ao invés de processos separados para cada cliente. Threads múltiplas compartilham um único processo de servidor. Os benefícios desta arquitetura incluem:

1) Havendo um único processo de servidor, elimina-se os gargalos resultantes do gerenciamento ao acesso compartilhado de páginas do banco de dados;

2) Melhora a performance da interação das mensagens porque uma chamada compartilhada à uma biblioteca é sempre mais rápida que os processos de comunicação entre os processos de cliente e do servidor;

3) Melhora a integridade do banco de dados, porque somente um processo de servidor acessa o banco de dados;

4) Permite o acesso às estatísticas do banco de dados e informações sobre os usuários que ferramentas podem utilizar para monitorar performance ou executar tarefas administrativas;

5) Tem uma relação custo-benefício melhor que a arquitetura Classic.

A versão Classic foi desenvolvida na versão 4 do Interbase, é baseada em processos. Para cada conexão é iniciado um processo de servidor separado para execução do engine do banco de dados, e cada processo tem um cache de banco de dados dedicado. Os processos disputam entre si o acesso ao banco de dados, portanto um gerenciamento de lock se faz necessário para arbitrar e sincronizar o acesso concorrente.

O Firebird é um banco de dados que possui uma grande simplicidade de instalação e manutenção em pequenos ambientes. É muito fácil distribuir o servidor junto com sua aplicação, independente do modelo de arquitetura adotado (Client-Server/ N-Tier) sem que necessariamente exija grandes configurações, o que o torna totalmente diferente se comparado a bancos de dados do mercado como SQL Server ou Oracle por exemplo, que necessitam de várias customizações durante a instalação.

Além do Firebird, atualmente existem outros bancos de dados que suportam o recurso Embedded. Para quem desenvolve aplicações para as plataformas Windows Mobile (agora Windows Phone 7) por exemplo, é possível utilizar uma versão compacta e mais limitada do SQL Server, denominada de SQL Server Compact Edition ou SQL Server CE como também é conhecido. Neste caso o banco de dados é distribuído e roda juntamente com a aplicação no dispositivo móvel, sem “servidor”.

Este tipo de aplicação é muito comum para apresentações de catálogos de livros, cosméticos, filmes etc. Por exemplo, citando uma aplicação de livros, imagine um caso aonde haja uma coleção de livros, revistas, quadrinhos sendo necessário disponibilizar um catálogo destes exemplares para possível venda e/ou troca dos exemplares. É exatamente o tipo de aplicação que é proposta neste artigo: um catálogo de livros, revistas e quadrinhos que possibilitem a apresentação para um eventual negociador destas edições.

Banco de Dados de exemplo

A Figura 1 ilustra as tabelas e seus respectivos relacionamentos, usados no exemplo do artigo (o script por ser visto na Listagem 1). É possível perceber pela modelagem proposta que foram utilizadas apenas três tabelas (edição, edição item e editora). A tabela EDITORA não necessita de explanação. A tabela EDICAO contém a descrição da edição, a numeração inicial e final bem como o tipo. O campo tipo determina se trata-se de um livro ou uma HQ (história em quadrinhos/gibi). Os campos número inicial e final determinam o número de edições de uma determinada coleção de quadrinhos (caso seja deste tipo). Por último, a tabela EDICAO_ITEM descreve o número daquela determinada edição, a quantidade de exemplares e a foto do livro e/ou HQ.

...
Quer ler esse conteúdo completo? Tenha acesso completo