marcelo santos daibert1 persistência em software orientado a objetos: soluções de mapeamento...

36
Marcelo Santos Daibert 1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco Antônio Pereira Araújo Co-Orientadora: Alessandreia Marta de Oliveira Julio

Upload: internet

Post on 18-Apr-2015

109 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco

Marcelo Santos Daibert 1

Persistência em Software Orientado a Objetos:

Soluções de MapeamentoObjeto-Relacional

Marcelo Santos Daibert

Orientador: Marco Antônio Pereira AraújoCo-Orientadora: Alessandreia Marta de Oliveira Julio

Page 2: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco

Marcelo Santos Daibert 2

Agenda

• Motivação• Metodologia• Contextualização• Frameworks de Persistência

– DePO– Instant Objects– TiOPF

• Estudo de Caso: Acadêmico OO• Resultados• Considerações Finais

Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão

Page 3: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco

Marcelo Santos Daibert 3

Motivação

• Crescente utilização do paradigma orientado a objetos no desenvolvimento de software

• As estratégias de armazenamento orientadas a objetos não são maduras o suficiente

• Reduzir o gap entre o paradigma de desenvolvimento orientado a objetos e o modelo relacional de armazenamento de dados

• A busca por soluções opensource eficazes e eficientes para persistência de objetos em base de dados relacional

Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão

Page 4: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco

Marcelo Santos Daibert 4

Motivação

• Projeto de Iniciação Científica– Estratégias de Persistência em Software Orientado a

Objetos

– Estudar as diversas estratégias de persistência• Mapeamento Objeto-Relacional• Banco de Dados OO• Banco de Dados OR

– Criar uma camada de persistência própria para o ambiente Delphi

Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão

Page 5: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco

Marcelo Santos Daibert 5

Metodologia

• Estudo exploratório de persistência de objetos e camadas de persistência

• Estudo comparativo entre as estratégias opensource disponíveis para o ambiente Delphi

• Definição e implementação de uma aplicação utilizando um framework de persistência– Utilização de padrões de projeto (Design Patterns)– Utilização de ferramenta de versionamento (SVN)– Utilização de ferramenta de BugTracking (NSN

Projetc)

• Divulgação dos resultados

Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão

Page 6: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco

Marcelo Santos Daibert 6

Metodologia

Page 7: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco

Marcelo Santos Daibert 7

Metodologia

• Estudo exploratório de persistência de objetos e camadas de persistência

• Estudo comparativo entre as estratégias opensource disponíveis para o ambiente Delphi

• Definição e implementação de uma aplicação utilizando um framework de persistência– Utilização de padrões de projeto (Design Patterns)– Utilização de ferramenta de versionamento (SVN)– Utilização de ferramenta de BugTracking (NSN

Projetc)

• Divulgação dos resultados

Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão

Page 8: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco

Marcelo Santos Daibert 8

Page 9: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco

Marcelo Santos Daibert 9

Metodologia

• Estudo exploratório de persistência de objetos e camadas de persistência

• Estudo comparativo entre as estratégias opensource disponíveis para o ambiente Delphi

• Definição e implementação de uma aplicação utilizando um framework de persistência– Utilização de padrões de projeto (Design Patterns)– Utilização de ferramenta de versionamento (SVN)– Utilização de ferramenta de BugTracking (NSN

Projetc)

• Divulgação dos resultados

Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão

Page 10: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco

Marcelo Santos Daibert 10

Contextualização

• POO – Programação Orientada a Objetos• Paradigma OO difere substancialmente do

Paradigma Relacional

Classes

Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão

Tabelas#

Page 11: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco

Marcelo Santos Daibert 11

Contextualização

• Mapeamento Objeto Relacional

– Escolha de um OID (Object Identification)– Mapear atributos para colunas– Mapear classes para tabelas

Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão

Classes

Tabelas

Page 12: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco

Marcelo Santos Daibert 12

Contextualização

– Mapear Herança

Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão

Uma tabela por hierarquia

Uma Tabela porClasse Concreta

Uma Tabela porClasse

Page 13: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco

Marcelo Santos Daibert 13

Contextualização

– Mapear Associação 1:1

– Mapear Associação 1:n

Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão

Page 14: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco

Marcelo Santos Daibert 14

Contextualização

– Mapear Associação n:n

Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão

Page 15: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco

Marcelo Santos Daibert 15

Contextualização

• Camadas de Persistência

– Camada de Persistência

Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão

Page 16: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco

Marcelo Santos Daibert 16

Contextualização

• Camadas de Persistência

– Camada de Persistência

Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão

Classes de Domínio

SQL

SGBDRCamada

dePersistência

Camada de Persistência

Page 17: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco

Marcelo Santos Daibert 17

Frameworks de Persistência

• Estrutura complexa e genérica responsável pela persistência e manipulação dos objetos.

– DePO (Delphi Persistent Objects)– IO (Instant Objects)– TiOPF (TechInside Object Persistent Framework)

Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão DePO IO TiOPF

Page 18: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco

Marcelo Santos Daibert 18

Frameworks de Persistência

• DePO

Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão DePO IO TiOPF

Page 19: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco

Marcelo Santos Daibert 19

Frameworks de Persistência

– Manipulação de Objetos• Persistir / Criar

Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão DePO IO TiOPF

var Aluno: TAluno;begin Aluno:= TAluno.Create(dpoDBXMechanism); Aluno.Codigo:= '1'; Aluno.Nome:= 'José da Silva'; Aluno.Matricula:= '2002102013'; Aluno.Save;end;

Page 20: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco

Marcelo Santos Daibert 20

Frameworks de Persistência

– Manipulação de Objetos• Recuperar

Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão DePO IO TiOPF

var Aluno: TAluno;begin Aluno:= TAluno.Create(dpoDBXMechanism); Aluno.Codigo:= '1'; if not Aluno.Retrieve then begin MessageDlg('Aluno não existe', mtWarning, [mbOK], 0); end;end;

Page 21: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco

Marcelo Santos Daibert 21

Frameworks de Persistência

– Manipulação de Objetos• Atualizar

Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão DePO IO TiOPF

var Aluno: TAluno;begin Aluno:= TAluno.Create(dpoDBXMechanism); Aluno.Codigo:= '1'; if Aluno.Retrieve then begin Aluno.Nome:= 'Joaquim Souza'; Aluno.Save; end;end;

Page 22: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco

Marcelo Santos Daibert 22

Frameworks de Persistência

– Manipulação de Objetos• Excluir

Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão DePO IO TiOPF

var Aluno: TAluno;begin Aluno:= TAluno.Create(dpoDBXMechanism); Aluno.Codigo:= '1'; if Aluno.Retrieve then begin Aluno.Delete; Aluno.Save; end;end;

Page 23: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco

Marcelo Santos Daibert 23

Frameworks de Persistência

• Instant Objects

Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão DePO IO TiOPF

Page 24: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco

Marcelo Santos Daibert 24

Frameworks de Persistência

– Model Explorer

Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão DePO IO TiOPF

Page 25: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco

Marcelo Santos Daibert 25

Page 26: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco

Marcelo Santos Daibert 26

Frameworks de Persistência

– Manipulação de Objetos• Persistir / Criar

Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão DePO IO TiOPF

var objAluno : TAluno;begin objAluno:=TAluno.Create(InstantDBXConnector); objAluno.Nome := 'José da Silva'; objAluno.Matricula := 2002102013; objAluno.Store();end;

Page 27: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco

Marcelo Santos Daibert 27

Frameworks de Persistência

– Manipulação de Objetos• Recuperar

Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão DePO IO TiOPF

var objAluno : TAluno;begin try objAluno:=TAluno.Retrieve('ID',false,false, InstantDBXConnector); except MessageDlg('Aluno não Existe', mtWarning, [mbOK], 0); end;end;

Page 28: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco

Marcelo Santos Daibert 28

Frameworks de Persistência

– Manipulação de Objetos• Atualizar

Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão DePO IO TiOPF

var objAluno : TAluno;begin try objAluno:=TAluno.Retrieve('ID',false,false, InstantDBXConnector); objAluno.Nome := 'Joaquim Souza'; objAluno.Matricula := 2003201245; objAluno.Store(); except MessageDlg('Aluno não Existe', mtWarning, [mbOK], 0); end;end;

Page 29: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco

Marcelo Santos Daibert 29

Frameworks de Persistência

– Manipulação de Objetos• Excluir

Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão DePO IO TiOPF

var objAluno : TAluno;begin try objAluno:=TAluno.Retrieve('ID',false,false, InstantDBXConnector); objAluno.Dispose(); except MessageDlg('Aluno não Existe', mtWarning, [mbOK], 0); end;end;

Page 30: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco

Marcelo Santos Daibert 30

Frameworks de Persistência

• TiOPF– Componentes Data-aware

Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão DePO IO TiOPF

Page 31: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco

Marcelo Santos Daibert 31

Estudo de Caso: Acadêmico

• Sistema de Controle Acadêmico– Reengenharia (Estruturado -> Orientado a Objetos)– Utilização de Padrões de Projeto

• Persistência de Objetos– Utilização do framework de persistência objeto-

relacional DePO (Delphi Persistent Objetcs)

Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão

Page 32: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco

Marcelo Santos Daibert 32

Estudo de Caso: Acadêmico

Demo

Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão

Page 33: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco

Marcelo Santos Daibert 33

Resultados

• Artigo “Persistência de Objetos no Delphi: Introdução ao DePO(Delphi Persistent Objects)” aceito na revista ClubeDelphi.

• Artigo “Persistência em Software Orientado a Objetos: Abordagens Utilizando Frameworks OpenSource” aceito para apresentação oral no III Encontro de Software Livre do Amazonas (ESLAM) em Manaus

• Apresentação do minicurso “Persistência de Objetos em Delphi – Introdução ao Framework DePO(Delphi Persistent Objects)”

Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão

Page 34: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco

Marcelo Santos Daibert 34

Resultados

• Apresentação oral do workshop “Persistência em Software Orientado a Objetos: Abordagens Utilizando Frameworks OpenSource” no II Festival de Software Livre de Juiz de Fora (FESTSOL)

Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão

Page 35: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco

Marcelo Santos Daibert 35

Considerações Finais

• Este trabalho buscou apresentar soluções opensource eficazes e eficientes para suprir as necessidades de desenvolvimento orientado a objetos, unindo:– Maturidade,– Confiança,– Desempenho dos bancos de dados relacionais

• Trabalhos futuros:– Estudo dos frameworks proprietários, como o ECO,

ECO II, Bold.

Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão

Page 36: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco

Marcelo Santos Daibert 36

Persistência em Software Orientado a Objetos:

Soluções de MapeamentoObjeto-Relacional

Marcelo Santos Daibert

Orientador: Marco Antônio Pereira AraújoCo-Orientadora: Alessandreia Marta de Oliveira Julio