Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 1
PUC-Rio
Middleware para Integração de Dados Heterogêneos Baseado em
Composição de Frameworks
Aluno: Alvaro Cesar P BarbosaOrientador: Prof. Rubens Nascimento Melo
Co-Orientador: Prof. Carlos José Pereira de Lucena
Tese de Doutorado
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 2
PUC-RioSumário
Introdução
Objetivo
O Ambiente CoDIMS
Estudo de Caso
Considerações Finais
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 3
PUC-RioIntrodução
Integração de dados heterogêneos é um tema de pesquisa atual e com muitos problemas em aberto.
Aplicações necessitam acessar dados de diferentes fontes de dados distribuídas, através de sistemas integradores.
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 4
PUC-RioIntrodução
Desenvolver sistemas de integração de dados não é uma tarefa simples devido a complexidade de:
Acesso a diferentes modelos de dados;
Integração semântica de dados;
Estratégias para processamento de consultas;
Técnicas de gerência de transação.
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 5
PUC-Rio Introdução
O crescimento da Internet tem aumentado estes problemas, devido a:
Usuários com diferentes perfis e interesses;
Dados de diferentes tipos e modelos;
Aplicações com diferentes funcionalidades.
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 6
PUC-Rio Introdução - Sistemas Existentes Sistema Abordagem
Modelo deDados
Integrador
Linguagemde
Consulta
Processamentode
ConsultaStrudel
(AT & T Labs) Mediador Grafo depáginas HTML
STRUQLBaseado emsistemas de
recuperação deinformação
Araneus(Universidadede Roma Tre)
Mediador RelacionalInterface
HTML* Não está claro nas
referências
Le Select(INRIA)
Mediador Relacional SQL Tradicional
DISCO(INRIA)
Mediador Orientado aObjeto
OQL Tradicional
TSIMMIS(Universidadede Stanford)
MediadorObject
ExchangeModel (OEM)
OEM-QLConjunto padrão de
sub-consultas
MIRO-Web(GMD)
Mediador Relacional-Objeto
SQL * Não está claro nasreferências
Garlic(IBM)
SGBDH Orientado aObjeto
OQL Tradicional
MOCHA(Universidadede Maryland)
MiddlewareRelacional-
Objeto SQL Tradicional
HEROS(PUC-Rio)
SGBDH Orientado aObjeto
OQL Tradicional
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 7
PUC-RioIntrodução
Trabalhos anteriores do nosso grupo de pesquisa:
Desenvolvimento do Sistema HEROS;
Desenvolvimento do projeto ECOHOOD;
Atual participação no projeto ECOBASE (CNPq/INRIA).
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 8
PUC-Rio Motivação
As soluções devem ser moldadas a fim de conciliar os diferentes aspectos entre usuários, dados e aplicações.
Necessidade de desenvolver sistemas de integração que sejam flexíveis e configuráveis.
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 9
PUC-Rio
Desenvolver um ambiente flexível, denominado CoDIMS, que permita gerar sistemas middleware configurados para a integração de dados heterogêneos e distribuídos.
CoDIMS: Configurable Data Integration Middleware System
Objetivo
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 10
PUC-Rio
Fontes de Dados
Aplicações c/ visão integrada
BDs Legados Internet … Outros
Middleware
Objetivo
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 11
PUC-Rio
Fontes de Dados
Aplicações c/ visão integrada
BDs Legados Internet…
Outros
O Ambiente CoDIMS
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 12
PUC-Rio O Ambiente CoDIMS O CoDIMs permite a seleção e integração de
um conjunto adequado de componentes DIMS: Data Integration Middleware Services.
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 13
PUC-RioO Ambiente CoDIMS
Gerar sistemas de integração configurados apenas com os componentes necessários e adequados a uma aplicação específica.
“What you need is only what you
get”.(wynwyg)
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 14
PUC-Rio
Controle
Somente Leitura dos Dados Integrados
Exemplo de Configuração 1
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 15
PUC-Rio
Controle
Exemplo de Configuração 2
Alteração nas Fontes de Dados
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 16
PUC-Rio
Controle
Exemplo de Configuração 3
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 17
PUC-RioArquitetura do CoDIMS
Controle
FD1 FD2
Acesso aos Dados
Wrapper Wrapper
Gerência deMetadados
Processamentode Consulta
Gerência de Regras
Controle de Concorrência
Gerência deTransação
Interface
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 18
PUC-RioA Abordagem CoDIMSFlexibilidade:
Configuração e Frameworks
Configuração Física:Componentes e Serviços
Configuração Lógica:Escalonamento dos Serviços
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 19
PUC-RioConfiguração
Program P;Type R = Record
C1 : T1; C2 : T2;
…..Cn : Tnend;
Proc Serviço 1;Proc Serviço 2;…Proc Serviço n;
Begin Serviço i1; … Serviço i inEnd.
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 20
PUC-RioConfiguração
Program P;Type R = Record
C1 : T1; C2 : T2;
…..Cn : Tnend;
Proc Serviço 1;Proc Serviço 2;…Proc Serviço n;
Begin Serviço i1; … Serviço inEnd.
Serviços
Funcionalidade
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 21
PUC-RioConfiguração
Program P;Type R = Record
C1 : T1; C2 : T2;
…..Cn : Tnend;
Proc Serviço 1;Proc Serviço 2;…Proc Serviço n;
Begin Serviço i1; … Serviço inEnd.
MetadadosC 1 T 1C 2 T 2… …C n T n
Catálogo
Serviços
Funcionalidade
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 22
PUC-RioConfiguração
Program P;Type R = Record
C1 : T1; C2 : T2;
…..Cn : Tnend;
Proc Serviço 1;Proc Serviço 2;…Proc Serviço n;
Begin Serviço i1; … Serviço inEnd.
Metadados
ConfiguraçãoFísica
(Serviços)
ConfiguraçãoLógica
(Funcionalidade)
C 1 T 1C 2 T 2… …C n T n
Catálogo
? ?S S
NN
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 23
PUC-RioConfiguração Física
Seleção dos componentes DIMS adequados;
Customização dos componentes;
Integração destes componentes;
Registro dos componentes no sistema:(nome, serviços oferecidos e requisitados).
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 24
PUC-RioConfiguração Lógica
Registra o mapeamento entre as funcionalidades oferecidas pelo sistema e as operações dos componentes DIMS;
Faz o escalonamento das operações dos componentes DIMS durante a execução do sistema configurado;
Baseada no conceito de workflow.
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 25
PUC-Rio Especificação do CoDIMS
Processamento de Consulta
Gerência de Metadados
Controle
Gerência de Transação
Controle de Concorrência
Gerência de Regras
Acesso aos Dados
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 26
PUC-Rio Interfaces dos Componentes
FachadaControleDeConcorrência
bloquear-objeto()desbloquear-objeto()
<<facade>>
FachadaGerênciaDeTransação
iniciar-transação()abortar-transação()confirmar-transação()
<<facade>>
FachadaGerênciaDeRegras
definir-regra()executar-regra()
<<facade>>
FachadaGerênciaDeMetadados
definir-metadados()exibir-metadados()obter-objeto-metadados()
<<facade>>
FachadaAcessoAosDados
executar-sub-consulta()obter-estado-FD()obter-estado-sub-consulta()obter-proximo dado()
<<facade>>
FachadaControle
definir-configuração()exibir-configuração()definir-workflow()exibir-workflow()definirr-metadados()exibir-metadados()executar-consulta()executar-serviço()enviar-mensagem()
<<broker, facade>>
FachadaProcessamentoDeConsulta
analisar-consulta()reescrever-consulta()otimizar-consulta()processar-consulta()enviar-mensagem()
<<facade>>
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 27
PUC-RioControle
Rmi OutroPadrão
<<Incomplete>>
Configuraçãoarquivo-configuração
definir-configuração()exibir-configuração()verificar-configuração()verificar-operação()
Workflowarquivo-workflow
definir-workflow()exibir-workflow()obter-workflow-do-comando()
Escalonadorworkflow-do-comando
executar-consulta()atualizar-escalonamento()obter-proxima-terafa()
FachadaControle
definir-configuração()exibir-configuração()definir-workflow()exibir-workflow()definir-metadados()exibir-metadados()executar-consulta()executar-serviço()enviar-mensagem()
<<broker, facade, extensible,static>>
<<Instance Class>>
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 28
PUC-Rio
AplicaçãoCliente
FachadaControle
Configuração
definir-configuração
definir-configuração
verificar-configuração
Configuração Física
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 29
PUC-Rio Configuração Lógica
AplicaçãoCliente
FachadaControle
Workflow Configuração
definir-workflowdefinir-workflow
verificar-operação
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 30
PUC-Rio Execução de Consulta
AplicaçãoCliente
Workflow ServiçoComponente
FachadaControle OUT
FachadaControle IN
Escalonador
Repetir tantas vezes quantas forem o número de serviços a serem executados, definidos no workflow.
executar-consultaexecutar-consulta
executar-consulta
obter-workflow-do-comando
executar-serviço"serviço"
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 31
PUC-Rio
Fontes de Dados
Aplicações c/ visão integrada
Arquitetura de Metadados
…
BDs Legados Internet … Outros
…
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 32
PUC-Rio Gerência de Metadados
…
<<Incomplete, Disjoint>>
MetadadosGlobal
definir-MD-global()exib ir-MD-global()obter-objeto-MD-global()
MetadadosExterno
definir-MD-externo()exib ir-MD-externo()obter-ob jeto-MD-externo()
MetadadosExportação
definir-MD-exportação()exib ir-MD-exportação()obter-ob jeto-MD-exportação()
FachadaMetadados
definir-metadados()exibir-metadados()obter-objeto-metadados()
<<facade, extensible, static>>
<<Incomplete, Disjoint>>
MExpRelacional OutroModelo MGRelacional OutroModelo
<<Incomplete, Disjoint>>
MExtRelacional OutroModelo
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 33
PUC-Rio Processamento de Consulta
AnRelacional AnOutroModelo
<<Incomplete, Disjoint>>
ReRelacional ReOutroModelo
OtRelacional OtOutroModelo
ProRelacional ProOutroModelo
Análise
analisar-consulta()
Reescrita
reescrever-consulta()
Otimização
otimizar-consulta()
FachadaProcessamentoDeConsulta
analisar-consulta()reescrever-consulta()otimizar-consulta()processar-consulta()enviar-mensagem()
<<facade, extensible, static>>
Processamento
processar-consulta()
<<Incomplete, Disjoint>>
<<Incomplete, Disjoint>>
<<Incomplete, Disjoint>>
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 34
PUC-RioAcesso Aos Dados
WrapperRmi WrapperJdbc
Wrapperestado-FDestado-sub-consultaresultado-sub-consulta
abrir-FD()executar-sub-consulta()fechar-FD()modificar-estado-FD()modificar-estado-sub-consulta()obter-estado-FD()obter-estado-sub-consulta()obter-próximo-dado()
FachadaAcessoAosDados
executar-sub-consulta()obter-estado-FD()obter-estado-sub-consulta()obter-proximo-dado()
<<facade, extensible, static>>
WrapperOutroPadrão
<<Incomplete>>
<<Instance Class>>
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 35
PUC-Rio Casos de Uso
Configurar Sistema
Definir Workflow
Configurador do Sistema
Submeter Consul tasUsuário Final
CustomizarComponentes
SelecionarComponentes
Projetista do Sistema
Definir MetadadosProjetista da Aplicação
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 36
PUC-RioEstudo de Caso
Uma aplicação necessita integrar dados de duas fontes de dados:
Uma base de dados XML, contendo dados sobre pesca.
Um banco de dados Relacional contendo dados sobre espécies de peixes.
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 37
PUC-RioDocumento XML - Pesca
<!DOCTYPE Desembarque>
<!ELEMENT Pesca>
<!ATTLIST Pesca
cod-desembarque ID #REQUIRED
cod-local CDATA #REQUIRED
dia-desembarque CDATA #REQUIRED
mes-desembarque CDATA #REQUIRED
ano-desembarque CDATA #REQUIRED
cod-especie CDATA #REQUIRED
qtde-Kg CDATA #REQUIRED
cod-tipo-embarcação CDATA #REQUIRED
cod-aparelho-pesca CDATA #REQUIRED
qtde-pescadores CDATA #REQUIRED
qtde-dias-pesca CDATA #REQUIRED>
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 38
PUC-RioBanco de Dados - Espécie
Tabela Atributo Tipo
cod-espécie char(5)
mes-reprodução char(2)
nome-científico char(30)
espécie
nome-vulgar char(30)
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 39
PUC-Rio Características da Aplicação A aplicação requer consultas tais como:
”Obter local, data de desembarque, código da espécie e quantidade pescada, das espécies em período de reprodução”.
Além disso deverá ser possível decidir sobre as formas de executar as consultas.
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 40
PUC-Rio
Aplicação requer somente consultar os dados
Projeto do Sistema
CustomizarComponentes
SelecionarComponentes
Projetista do Sistema
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 41
PUC-Rio Configuração Física - Exemplo
Define Component Metadados
Offered-Operations
definir-metadados (string tipo-MD, string arq-script , int CR);
exibir-metadados (string tipo-MD, string arq, int CR);
obter-objeto-MD (int id, string tipo-MD, string nome-obj, string obj, int CR);
End-Component.
Configurar Sistema
Definir Workflow
Configurador do Sistema
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 42
PUC-Rio Configuração Física - Exemplo
Define Component AcessoAosDados Offered-Operations
executar-sub-consulta (int id, string nome-FD, string sub-cons,
string arq-res, int CR);
obter-próximo-dado (int id, string nome-FD, string dados, int CR);
End-Component.
Configurar Sistema
Definir Workflow
Configurador do Sistema
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 43
PUC-Rio Configuração Física - ExemploDefine Component ProcessamentoDeConsulta
Offered-Operations
analisar-consulta (int id , string cons , string grafo-cons, int CR);
reescrever-consulta (int id , string grafo-cons, string arv-op, int CR);
otimizar-consulta (in id t, string arv-op, string arv-exec, int CR);
processar-consulta (int id , string arv-exec, string arq-res, int CR)
Requested-Operations
Metadados, obter-objeto-MD (int id , string tipo-MD, string nome-obj,
string obj, int CR);
AcessoAosDados, executar-sub-consulta (int id , string nome-FD, string
sub-cons, string arq-res, int
CR);
AcessoAosDados, obter-próximo-dado (int id , string nome-FD, string
dados, int CR);
End-Component.
Configurar Sistema
Definir Workflow
Configurador do Sistema
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 44
PUC-Rio Configuração Lógica - Exemplo
Define Workflow Select Operations
ProcessamentoDeConsulta (analisar-consulta);ProcessamentoDeConsulta (reescrever-consulta);ProcessamentoDeConsulta (otimizar-consulta);ProcessamentoDeConsulta (processar-consulta)
End-Operations.
Configurar Sistema
Definir Workflow
Configurador do Sistema
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 45
PUC-Rio Configuração Lógica - Exemplo
Define Workflow Show Plan Operations
ProcessamentoDeConsulta (analisar-consulta);ProcessamentoDeConsulta (reescrever-consulta);ProcessamentoDeConsulta (otimizar-consulta)
End-Operations.
Define Workflow No Optmize Operations
ProcessamentoDeConsulta (analisar-consulta);ProcessamentoDeConsulta (reescrever-consulta);ProcessamentoDeConsulta (processar-consulta)
End-Operations.
Define Workflow Compile Operations
ProcessamentoDeConsulta (analisar-consulta)End-Operations.
Configurar Sistema
Definir Workflow
Configurador do Sistema
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 46
PUC-Rio Definição de Metadados
Definir MetadadosProjetista da Aplicação
Tabela Atributo Tipo
cod-desembarque char(5)
cod-local char(2)
dia-desembarque char(2)
mes-desembarque char(2)
ano-desembarque char(2)
cod-especie char(5)
qtde-Kg char(5)
Pesca-Exp
cod-aparelho-pesca char(2)
Tabela Atributo Tipo
cod-espécie char(5)
Mes-reprodução char(2)
Espécie-Exp
Nome-vulgar char(30)
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 47
PUC-Rio Definição de Metadados Tabela
GlobalAtributoGlobal
Tabela-Exportação
Atributo-Exportação
Tipo
cod-desembarque Pesca-Exp cod-desembarque char(5)
cod-local Pesca-Exp cod-local char(2)
dia-desembarque Pesca-Exp dia-desembarque char(2)
mes-desembarque Pesca-Exp mes-desembarque char(2)
ano-desembarque Pesca-Exp ano-desembarque char(2)
cod-especie Pesca-Exp cod-especie char(5)
qtde-Kg Pesca-Exp qtde-Kg char(5)
Pesca-
Glob
cod-aparelho-pesca Pesca-Exp cod-aparelho-pesca char(2)
cod-espécie Especie-Exp cod-espécie char(5)
mes-reprodução Especie-Exp mes-reprodução char(2)
Especie-
Glob
nome-vulgar Especie-Exp nome-vulgar char(30)
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 48
PUC-RioConsulta
Select cod_local, dia_desembarque, mes_desembarque, ano_desembarque,
cod_especie, qtde_kg
From Pesca_Glob P, Especie_Glob E
Where P.mes_desembarque = E.mes_reprodução and
P.cod_especie = E.cod_especie
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 49
PUC-RioImplementação
Desenvolvimento de um protótipo no TecBD para o estudo de caso.
Foi utilizada a linguagem Java no ambiente Windows-NT.
Os componentes foram desenvolvidos e compilados separadamente, sendo a comunicação entre eles via RMI.
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 50
PUC-RioConclusões
O CoDIMS é um ambiente flexível para gerar sistemas configurados para integração de dados heterogêneos;
O ambiente é baseado na seleção e integração de um conjunto adequado de componentes DIMS;
Os componentes foram desenvolvidos utilizando a técnica de frameworks.
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 51
PUC-RioConclusões
O CoDIMS permite usar componentes e/ou serviços já disponíveis, inclusive remotos, como: Wrappers, Analisadores e Otimizadores de consulta etc..
Usar componentes já existentes aumenta a qualidade do software e diminui o tempo de desenvolvimento.
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 52
PUC-RioConclusões
Os mecanismos de configuração, física e lógica, permitem disponibilizar diferentes serviços e funcionalidades, de acordo com os requisitos da aplicação, como por exemplo:
Linguagem de consulta;
Modelo de dados integrador; Escalonamentos específicos.
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 53
PUC-RioConclusões
A abordagem CoDIMS é:
“What you need is only what you get”.
(wynwyg)
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 54
PUC-Rio Tópicos de Pesquisa Banco de Dados Flexíveis:
Flexibilidade e extensibilidade, integração de dados e integração com a Web.
Frameworks:Sistemas configuráveis, arquitetura, reuso, componentes. Instanciação; Integração.
Aplicações Web:Metadados, dados estruturados, semi-estruturados e não
estruturados, XML.
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 55
PUC-RioContribuições
O desenvolvimento de um ambiente flexível e configurável para integração de dados heterogêneos;
Implementação de um protótipo;
Uma proposta de arquitetura dentro do contexto do projeto ECOBASE.
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 56
PUC-RioPublicações
ECOHOOD: Constructing Configured DBMSs based on Frameworks. Melo, R.N.; Porto, F.A.M.; Lima, F. & Barbosa, A.C.P. XIII Simpósio Brasileiro de Banco de Dados, Maringá-PR, Brasil, Outubro 1998.
Configurable Data Integration Middleware System. Barbosa, A.C.P. & Porto, F.A.MProceedings of International Workshop on Information
Integration on the Web: Technologies and Applications (WIIW2001), Rio de Janeiro, Abril 2001.
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 57
PUC-RioTrabalhos Futuros
Especificação e desenvolvimento dos componentes Gerência de Regras, Gerência de Transação, Controle de Concorrência...
Integração semântica dos componentes DIMS;
Especificação do mecanismo de troca de mensagens entre os componentes;
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 58
PUC-RioTrabalhos Futuros
Alteração do escalonamento (workflow) em tempo de execução;
Desenvolvimento e reuso de componentes e de wrappers.
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 59
PUC-Rio
Middleware para Integração de Dados Heterogêneos Baseado em
Composição de Frameworks
Aluno: Alvaro Cesar P BarbosaOrientador: Prof. Rubens Nascimento Melo
Co-Orientador: Prof. Carlos José Pereira de Lucena
Tese de Doutorado
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 60
PUC-Rio
FIM
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 61
PUC-Rio
Regra
Esquema
Consulta
Interfaceusuário
TransaçãoComunicação
SBD locais
usuário
Sistema HEROSHEROS: HEteRogeneous Object System
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 62
PUC-Rio Sistema HEROS
A necessidade da presença de todos os módulos em qualquer aplicação;
A grande interconexão dos seus módulos, o que dificulta o processo de adaptação;
Processo de instanciação por extensão e não por componentização;
Impossibilidade de trocar componentes: Por exemplo, o modelo de dados sempre OO.
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 63
PUC-Rio
Define Component nome-do-componente Offered-Operations
nome-da-operação (tipo nome {;tipo nome}){; nome-da-operação (tipo nome {;tipo nome})};
[Requested-Operationsnome-do-componente, nome-da-operação (tipo nome
{;tipo nome}){;nome-do-componente, nome-da-operação (tipo par
{;tipo nome})};]End-Component.
Processo de Configuração
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 64
PUC-Rio
Define Workflow nome-do-comandoOperations nome-do-componente (nome-da-operação)
{ ; nome-do-componente (nome-da-operação)}End-Operations.
Definição do Workflow
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 65
PUC-RioDiagrama de Seqüência
AplicaçãoCliente
FachadaControle
FachadaMetadados
MetadadosExportação
MetadadosGlobal
MetadadosExterno
definir-metadadosdefinir-metedados [Se tipo = MExp]
defenir-MD-exportação
[Se tipo = MG]definir-MD-global
[Se tipo = MExt]definir-MD-externo
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 66
PUC-Rio
Componente 1 FachadaControle
FachadaComponente 2
enviar-mensagem
"executar-operação"
Diagrama de Seqüência
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 67
PUC-RioFrameworks
Algumas questões sobre desenvolvimento de software:Por que não existem catálogos de componentes de software tal
como os de hardware?Por que não construir software escolhendo e combinando
componentes de software?Por que não reusar software?
Reuso é o processo de criar software a partir de software já existente, reduzindo o esforço de desenvolvimento.
Framework é uma das técnicas de reuso, permitindo o reuso de análise, de projeto e de código.
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 68
PUC-RioFrameworks
A técnica de reuso necessita de uma arquitetura para guiar a integração dos componentes.
Arquitetura de software é uma descrição dos subsistemas e componentes de um sistema de software e dos relacionamentos entre eles.
Framework é uma arquitetura semi-completa, que pode ser instanciada para produzir aplicações customizadas, permitindo construir sistemas flexíveis e configuráveis.
Framework é uma forma particular de representar arquitetura de software na comunidade de Orientação a Objetos.
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 69
PUC-RioFrameworks
Componentes de software são unidades de produção, aquisição e desenvolvimento independente que interagem para formar um sistema.
Construir novas soluções a partir de componentes (criados ou adquiridos) aumenta a qualidade e diminui o tempo de desenvolvimento.
Componentes em frameworks podem padronizar interfaces e código genérico para vários tipos de abstrações de software.
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 70
PUC-RioFrameworks
Frameworks são formados por frozen spots e hot spots.
Frozen spots definem a arquitetura global do sistema, seus componentes básicos e os relacionamentos entre eles, ficando imutáveis.
Hot spots são as partes específicas para cada sistema, sendo genéricos para poderem ser adaptados de acordo com a aplicação.
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 71
PUC-RioFrameworks
A forma mais comum de se instanciar um framework é através de extensão (herança e escrita e código). Neste caso o framework é chamado whitebox.
A instanciação de um framework por componentes é mais complexa pois estes podem ter interdependências, serem opcionais ou até mesmo serem conflitantes. Neste caso o framework é chamado blackbox.
Componentes, por sua vez, podem ser frameworks. Integração de frameworks é um assunto novo e aberto
na comunidade científica.
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 72
PUC-Rio FrameworksSegundo Fayad & Schmidt, frameworks podem
ser classificados em: Frameworks de Infra-Estrutura de Sistemas (sistemas
operacionais, comunicação, interface, linguagens);
Frameworks de Integração [Middleware] (integração de informações distribuídas e componentes). Permite modularizar, reusar e estender software de infra-estrutura. Utiliza algum tipo de framework de infra-estrutura.
Frameworks de Aplicação (telecomunicações, manufatura, financeiro, saúde, educação).
Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks Pág. 73
PUC-Rio Definição de Metadados