Prevayler. Perola. André Luís Sales de Moraes Juliana Keiko Yamaguchi Tatiana Yuka Takaki



Documentos relacionados
HIBERNATE EM APLICAÇÃO JAVA WEB

Evolução. Tópicos. Bancos de Dados - Introdução. Melissa Lemos. Evolução dos Sistemas de Informação Esquemas Modelos. Características de SGBDs

? O SQL SERVER é um sistema de gerenciamento de banco de dados relacional que foi desenvolvido inicialmente pela Microsoft em parceria com a Sybase.

Noções de. Microsoft SQL Server. Microsoft SQL Server

GBC043 Sistemas de Banco de Dados. Introdução. Ilmério Reis da Silva UFU/FACOM

Gerenciamento de Transações

As principais características da abordagem de um banco de dados versus a abordagem de processamento de arquivos são as seguintes:

GUIA INTEGRA SERVICES E STATUS MONITOR

5 Mecanismo de seleção de componentes

Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate

UFG - Instituto de Informática

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0

4 Um Exemplo de Implementação

Ferramenta de apoio a gerência de configuração de software. Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl

LINGUAGEM DE BANCO DE DADOS

ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE

Sistemas Operacionais

GERADOR DE CÓDIGO JSP BASEADO EM PROJETO DE SGBD. Acadêmico: Maicon Klug Orientadora: Joyce Martins

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert:

Manual do usuário. Softcall Java. versão 1.0.5

Considerações sobre o Disaster Recovery

3 SCS: Sistema de Componentes de Software

Backup. Prof. Marciano dos Santos Dionizio

FECHAMENTO FISCAL ENTRADAS

TUTORIAL PRÁTICO SOBRE Git. Versão 1.1

Bancos de Dados. Conceitos F undamentais em S is temas de B ancos de Dados e s uas Aplicações

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados.

BANCO DE DADOS AULA 02 INTRODUÇÃO AOS BANCOS DE DADOS PROF. FELIPE TÚLIO DE CASTRO 2015

Desenvolvendo Websites com PHP

Introdução Banco de Dados

Backup. Prof. Marciano dos Santos Dionizio

Uma Abordagem sobre Mapeamento Objeto Relacional com Hibernate

Sistemas Operacionais

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo

Microsoft Access XP Módulo Um

Introdução. Banco de dados. Por que usar BD? Por que estudar BD? Exemplo de um BD. Conceitos básicos

Modelos. Comunicação com clientes

Orientação a Objetos

ESTUDO COMPARATIVO ENTRE AS PLATAFORMAS ARDUINO E PIC

Ferramenta: Spider-CL. Manual do Usuário. Versão da Ferramenta:

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi

Integrando Java com Banco de Dados

Taxa de Gravação da Memória RAM (MegaBytes / segundo) G5 2.7 Ghz (Mac) Linux Kernel

Introdução ao Modelos de Duas Camadas Cliente Servidor

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.

OURO MODERNO Editor de textos APOSTILA DE EXEMPLO. (Esta é só uma reprodução parcial do conteúdo)

Persistência de dados com JPA. Hélder Antero Amaral Nunes

Disciplina de Banco de Dados Introdução

Manual Captura S_Line

4 Implementação e Resultados Experimentais

Figura 1 - Arquitetura multi-camadas do SIE

Procedimentos para Reinstalação do Sisloc

Sistemas Operacionais Gerência de Dispositivos

Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional

Manual de Instalação PIMSConnector em Linux

Administração de Sistemas GNU/Linux

DESENVOLVIMENTO DE INTERFACE WEB MULTIUSUÁRIO PARA SISTEMA DE GERAÇÃO AUTOMÁTICA DE QUADROS DE HORÁRIOS ESCOLARES. Trabalho de Graduação

Banco de Dados. Aula 1 - Prof. Bruno Moreno 16/08/2011

Manual do Visualizador NF e KEY BEST

FundamentosemInformática

Sistemas Operacionais

O Windows 7 é um sistema operacional desenvolvido pela Microsoft.

CPG: sincronização entre diferentes dispositivos

Programação Orientada a Objetos JDBC Java Database Connectivity

HCT Compatibilidade Manual do Usuário

Persistência e Banco de Dados em Jogos Digitais

Sistema Operacional Correção - Exercício de Revisão

VisTrails. Fernando Seabra Chirigati Aluno de Engenharia de Computação e Informação COPPE/UFRJ fernando_seabra@cos.ufrj.br

Tópicos. Atualizações e segurança do sistema. Manutenção Preventiva e Corretiva de Software (utilizando o MS Windows XP)

IW10. Rev.: 02. Especificações Técnicas

Entendendo como funciona o NAT

LINEAR EQUIPAMENTOS RUA SÃO JORGE, TELEFONE: SÃO CAETANO DO SUL - SP - CEP

O Termo SIG é aplicado para sistemas que realizam o tratamento computacional de dados geográficos

Tópicos Especiais em Informática

Conceitos de Banco de Dados

MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS

Capacidade = 512 x 300 x x 2 x 5 = ,72 GB

Persistência em Software Orientado a Objetos:

MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO

Softwares Aplicativos Banco de Dados

PROPOSTA COMERCIAL. Caro cliente,

Etc & Tal. Volume 2 - Número 1 - Abril 2009 SBC HORIZONTES 44

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena

MBA Inteligência Competitiva Com ênfase em BI/CPM. Metadados

Prof.: Clayton Maciel Costa

Sistemas Operacionais. Prof. André Y. Kusumoto

MANUAL DE UTILIZAÇÃO

Manual de Instalação da leitora de SmartCard Teo by Xiring

1

Artur Petean Bove Júnior Tecnologia SJC

Prof. Marcelo Machado Cunha

Cursos de Magento Gugliotti Consulting

Figura 1. A Classe Java

Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Características Roteamento

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

Banco de Dados. Uma coleção de dados relacionados [ELMASRI/NAVATHE]

SISTEMA GERENCIADOR DE BANCO DE DADOS

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

Backup.

Transcrição:

Prevayler Perola André Luís Sales de Moraes Juliana Keiko Yamaguchi Tatiana Yuka Takaki

Prevayler Prevayler é a implementação em Java do conceito de Prevalência. É um framework que prega uma JVM invulnerável logicamente com o uso da camada de prevalência de objetos. Sua primeira implementação foi disponibilizada em novembro de 2001 como um projeto open-source. Atualmente, o Prevayler está na versão 2.02.006: http://sourceforge.net/project/showfiles.php?group_id=36113

Framework Solução para um conjunto de problemas em comum, com uso de classes e interfaces, que disponibilizam objetos com capacidades de capturar funcionalidades comuns a várias aplicações.

O que é Prevalência? Prevalência x Persistência Um objeto persistente pode continuar existindo mesmo após o encerramento da execução do programa que o criou. Persistência é uma característica dos sistemas informatizados com utilização de banco de dados relacionais Em um sistema dito prevalente, todos os objetos são armazenados em memória RAM.

Como o Prevayler Funciona? Em intervalos regulares (e no momento de fechar a aplicação) todos os objetos em memória são serializados para o disco; isso é chamado de snapshot. Todas as manipulações de objetos são registrados num log de comandos, o qual é escrito imediatamente em disco, via serialização.

Serialização de Objetos É o processo de escrever o estado (dados) de um objeto para uma seqüência de bytes. A serialização é útil para armazenar o estado de um objeto num repositório persistente, por exemplo arquivo.

Arquivos Serializados

Arquivos Serializados

Desserialização de Objetos Uma vez que o estado de um objeto esteja armazenado num arquivo, pode-se usar o processo de desserialização para restaurar o estado do objeto em memória.

Snapshot O Snapshot é um printscreen do estado total do sistemas, criado de tempos em tempos. Busca os objetos em memória e salva em disco como se fosse um sistema de backup.

Transações Serializadas As transações serializadas são operações realizadas nos objetos em memória e que são armazenadas em arquivos log antes de serem executadas. Quando uma aplicação é reiniciada, as seguintes atividades acontecem: Desserialização do último Snapshot (se houver). Desserialização e execução das transações seriadas após o último Snapshot. As transações dependem de 4 propriedades (ACID): Atomicidade Consistência Isolamento Durabilidade

Transações Serializadas Aplicação executada pela primeira vez usando o Prevayler:

Transações Serializadas Quando a aplicação é reiniciada usando o Prevayler, os objetos voltam para a memória em seu estado original:

Vantagens Velocidade é muito mais rápida comparada aos SGBD pois todos os objetos estão na memória RAM; 9.000 vezes mais rápidas do que no Oracle com JDBC 3.000 vezes mais rápidas do que no MySQL com JDBC Simplicidade sua arquitetura é baseada fundamentalmente em conceitos de serialização Independência o programador tem independência para desenvolver sua aplicação (isso pode ser uma desvantagem)

Desvantagens Utilização massiva dos recursos computacionais é necessária uma boa CPU para que a velocidade de execução das transações seja a maior possível. Maior esforço no planejamento da aplicação o programador deve implementar mecanismos que por default já estão implementados em alguns sistemas SGDBs.

Conclusão O Prevayler é uma ótima solução para aplicações nas quais o tempo de resposta é crítico. A simplicidade na implementação de sistemas utilizando sua API, que utiliza conceitos simples de serialização, também é uma grande vantagem. O correto funcionamento da aplicação é de inteira responsabilidade do programador. O Prevayler não é uma opção muito atraente para bases de dados muito grandes ou que crescem rapidamente.

Perola PEROLA - Persistence Object Layer Existem duas versões disponíveis: Perola Full e Perola Lite O Projeto Perola utiliza recursos oferecidos pela POA (Programação orientada a Aspectos) permitindo detectar mudanças no estado dos objetos da camada de negócio e transferi-los automaticamente para uma camada especializada em armazenamento persistente, que captura as informações do objeto e salvando-as no formato XML.

Programação Orientada a Aspectos "Quando a Orientação a Objetos apareceu, causou um efeito dramático em como os softwares eram desenvolvidos. Os desenvolvedores podiam visualizar sistemas como grupos de entidades e o relacionamento entre estas entidades, permitindo a construção de sistemas mais complexos e em um menor tempo de desenvolvimento... Um problema da programação Orientada a Objetos é que é essencialmente estática, e uma mudança nos requisitos pode causar um profundo impacto no desenvolvimento. A programação Orientada a Aspectos complementa a programação Orientada a Objetos permitindo ao desenvolvedor modificar dinamicamente o modelo estático da Orientação a Objetos para criar um sistema que pode atender a novos requisitos. Como objetos no mundo real podem mudar seus estados durante seu ciclo de vida, uma aplicação pode adotar novas características conforme é desenvolvida."

Perola Full Perola Lite Perola Full utiliza recursos POA para automaticamente transferir objetos da camada de negócio para a camada de armazenamento persistente, cada vez que mudanças no estado do objeto são detectadas. É necessário possuir um compilador de Aspectos, como o AspectJ, instalado para poder utilizar esta versão do Perola Perola Lite permite ao programador determinar em quais métodos os objetos da camada de negócios serão armazenados. Não é necessário o uso de um compilador de Aspectos

Sistema Agenda e Sistema DiskPizza O Sistema agenda é um exemplo de aplicação utilizando o Perola Full O Sistema DiskPizza é um exemplo de aplicação utilizando o Perola Lite

Como os Objetos são armazenados Perola Full Exemplo - Sistema Agenda O pacote perola.util possui uma classe ArrayList, pois as classes de coleções da API do Java devem ser reescritas para a interceptação de seus métodos pelo compilador de Aspectos O Perola possui dois Drivers a disposição, e o usado para este exemplo é o DriverPerolaForFileSystem, que grava cada objeto em um arquivo.xml dentro de uma pasta destinada aos dados do sistema (neste exemplo, esta pasta está definida como Dados

Como os Objetos são armazenados Perola Full Exemplo - Sistema Agenda O Sistema Agenda é dividido em camadas. Observando a estrutura, é possível identificar os pacotes da camada de apresentação e de negócio, bem como a persistência sendo representada pelo pacote perola

Com o uso do DriverPerolaForFileSystem, os objetos são armazenados em arquivos conforme mostra a figura a seguir

Como os Objetos são armazenados Perola Lite Exemplo Sistema DiskPizza O desenvolvedor deve identificar quais métodos realizam alterações nos atributos do objeto e assim inserir uma chamada ao método que é capaz de persisti-lo O Driver utilizado para este Sistema foi o DriverPerolaForJDBC

Comparando a Classe Contato

Curiosidade - Drivers O Perola dispõe de dois drivers: DriverPerolaForFileSystem: faz a gravação de cada objeto em um arquivo separado no formato XML DriverPerolaForJDBC: Permite armazenar os objetos fazendo uso de um Banco de Dados Relacional através da interface JDBC. Neste caso, haverá apenas uma tabela chamada Objects com os campos uid para armazenar a referência de cada objeto e contents para armazenar seu conteúdo também em formato XML

Considerações Finais É responsabilidade do Perola gravar e recuperar objetos da base persistente, sem necessidade de inserir código para isso. Outro ponto importante, é que não é necessária a preocupação com a realização de Snapshots, já que o Perola mantém uma base persistente dinâmica, refletindo exatamente a estrutura de objetos existentes na memória, pois, dependendo da quantidade de objetos existentes, tal tarefa (Snapshot) pode levar um tempo considerável. No Perola, isso não é necessário.

Referências Prevayler http://www.prevayler.org/wiki.jsp http://www.prevayler.org/upload/julien/prevayler_tutorial_pt.rtf http://www.javafree.com.br/forum/viewtopic.php?t=3922 http://www.javafree.com.br/forum/viewtopic.php?t=4297 Pérola Revista Mundo Java Número 14 Ano III http://perola.sourceforge.net/ http://www.lisha.ufsc.br/~guto/teaching/sce/ine5612-2001-/work/aop.htm http://www.mundooo.com.br/php/modules.php?name=news&file=article