Middleware Reflexivo Construindo Sistemas Distribuídos Flexíveis, Adaptáveis e Reconfiguráveis Prof. Dr. Fabio Kon Departa...
O que é “Middleware”? <ul><li>Software que  </li></ul><ul><ul><li>reside entre o sistema operacional e a aplicação </li></...
O que é  “Middleware de Comunicação”? <ul><li>Middleware cujo objetivo é facilitar o desenvolvimento de aplicações e siste...
Benefícios do  Middleware de Comunicação <ul><li>esconde do programador diferenças entre </li></ul><ul><ul><li>plataformas...
Esconde as Heterogeneidades Middleware Linux PC Middleware Windows PC Middleware Solaris Sparc Middleware MacOS iMAC Middl...
Outros Benefícios <ul><li>Gerenciamento de Nomes e Referências </li></ul><ul><li>Ativação Automática de Serviços </li></ul...
Serviços Padronizados <ul><li>Nomes </li></ul><ul><li>Negociação ( Trading ) </li></ul><ul><li>Tolerância a Falhas </li></...
Principais Plataformas de Middleware Existentes <ul><li>CORBA da OMG </li></ul><ul><li>J2EE da Sun  (também J2ME e J2SE)  ...
Conclusão Parcial <ul><li>Sistemas de middleware facilitam enormemente a criação de aplicações distribuídas complexas. </l...
Limitações dos Primeiros Sistemas de Middleware <ul><li>Modelo de concorrência fixo </li></ul><ul><li>Protocolo de transpo...
Ambientes onde arquiteturas fixas e monolíticas não funcionam <ul><li>Sistemas Altamente Dinâmicos </li></ul><ul><ul><li>C...
Paradoxo do Middleware <ul><li>A maior parte das aplicações necessitam que o middleware esconda os detalhes das camadas in...
Solução: Modelo Reflexivo para Middleware <ul><li>Middleware Reflexivo: </li></ul><ul><li>Oferece transparência para as ap...
Middleware Reflexivo Cliente Servidor Middleware Middleware meta-interface interface convencional
Interfaces <ul><li>Interface Convencional </li></ul><ul><li>permite a execução de aplicações convencionais </li></ul><ul><...
Reflexão Computacional <ul><li>Si stem a s  Reflexivos   [Smith 84] </li></ul><ul><li>Meta-Object Protocol  (MOP)   [Kicza...
Exemplos de Sistemas de Middleware Reflexivos <ul><li>dynamicTAO   </li></ul><ul><ul><li>University of Illinois at Urbana-...
dynamicTAO <ul><li>Extensão do ORB CORBA  TAO   [Schmidt et al] </li></ul><ul><li>Escrito em  C++ </li></ul><ul><li>Design...
Acrescentando Suporte para Reconfiguração Dinâmica <ul><li>dynamicTAO  exporta  a  interface  DynamicConfigurator   que pe...
Reificação   da Es trutur a do ORB <ul><li>Arcabouço   ComponentConfigurator </li></ul><ul><li>Armazena dependências entre...
Estrutura do  dynamicTAO
DOCTOR D ynamic  O RB  C onfiguration  T ool
Reconfigura ção   com   Agent e s  Móveis <ul><li>Para sistemas de grande escala </li></ul><ul><li>Agent e carrega </li></...
Aplicações de  dynamicTAO <ul><li>Monitoramento </li></ul><ul><ul><li>configurável </li></ul></ul><ul><li>Segurança  </li>...
Open ORB <ul><li>Construído a partir do zero no modelo reflexivo </li></ul><ul><li>Componentes: </li></ul><ul><ul><li>impl...
Open ORB:  Reconfiguração Dinâmica <ul><li>Reflexão como princípio fundamental </li></ul><ul><ul><li>Uma clara separação e...
Open ORB:  Múltiplos Modelos de Meta-espaço
Open ORB:  Meta-espaço de  Interfaces <ul><li>Representação  externa  de um componente </li></ul><ul><ul><li>conjunto de i...
Open ORB:  Meta-espaço de  Arquitetura <ul><li>Representação interna de um componente </li></ul><ul><li>Arquitetura de sof...
Open ORB:  Modelo de Arq uitetura  – Exemplo Grafo de componentes Restrições arquiteturais <ul><li>Componente A depende do...
Open ORB:  Meta-espaço de  Interceptadores <ul><li>Permite adaptar as propriedades não-funcionais associadas às interfaces...
Open ORB:  Meta-espaço de  Recursos <ul><li>Acesso padronizado </li></ul><ul><ul><li>aos recursos subjacentes da plataform...
Open ORB: Protótipos <ul><li>OOPP – Open ORB Python Prototype </li></ul><ul><li>OpenCOM </li></ul>
dynamicTAO  e Open ORB: Considerações gerais <ul><li>Dois projetos independentes, mas com </li></ul><ul><ul><li>motivações...
Middleware (Enxuto)  Baseado em Componentes <ul><li>Uso da tecnologia de componentes de software para construção da plataf...
UIC <ul><li>Universally Interoperable Core </li></ul><ul><ul><li>UIUC e ubi-core.com </li></ul></ul><ul><li>A configuração...
UIC: configuração abstrata <ul><li>Um esqueleto de ORB com componentes abstratos (ganchos) representando os tipos de funci...
UIC: configuração concreta <ul><li>Implementações concretas de cada componente abstrato são carregados dinamicamente. </li...
UIC: reconfiguração dinâmica <ul><li>Mecanismos internos do ORB podem ser reconfigurados em tempo de execução </li></ul><u...
UIC:  Configurações Enxutas  <ul><li>Middleware para um cliente minimal adotando personalidade CORBA: </li></ul><ul><ul><l...
Outros Sistemas de  Middleware Reflexivo <ul><li>mChaRM (U. Genova, Ítália) </li></ul><ul><li>COMERA (Microsoft) </li></ul...
O Futuro do Middleware <ul><li>Arquiteturas convencionais de middleware tem adotado os resultados de pesquisas em middlewa...
O Futuro que Esperamos <ul><li>Adoção de reflexão como princípio básico para o design de middleware. </li></ul><ul><li>Qua...
O que ainda falta fazer? <ul><li>Definição de um padrão internacional para middleware reflexivo </li></ul><ul><ul><li>de f...
International Workshop on Reflective Middleware <ul><li>1 st  Workshop on Reflective Middleware </li></ul><ul><ul><li>junt...
Conclusões <ul><li>Middleware Reflexivo já é um conceito bem conhecido e aceito na comunidade acadêmica de middleware. </l...
M aiores  I nforma ções <ul><li>Visão geral sobre Middleware Reflexivo: </li></ul><ul><li>www.ime.usp.br/~kon/papers/cacm0...
Próximos SlideShares
Carregando em…5
×

Middleware Reflexivo

2.618 visualizações

Publicada em

Construindo Sistemas Distribuídos Flexíveis, Adaptáveis e Reconfiguráveis

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
2.618
No SlideShare
0
A partir de incorporações
0
Número de incorporações
16
Ações
Compartilhamentos
0
Downloads
53
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Middleware Reflexivo

  1. 1. Middleware Reflexivo Construindo Sistemas Distribuídos Flexíveis, Adaptáveis e Reconfiguráveis Prof. Dr. Fabio Kon Departamento de Ciência da Computação IME / USP 21 de maio de 2003 SBRC’2003 - Natal, RN
  2. 2. O que é “Middleware”? <ul><li>Software que </li></ul><ul><ul><li>reside entre o sistema operacional e a aplicação </li></ul></ul><ul><ul><li>a fim de facilitar (simplificar) o desenvolvimento de aplicações. </li></ul></ul>Middleware SO Aplicação
  3. 3. O que é “Middleware de Comunicação”? <ul><li>Middleware cujo objetivo é facilitar o desenvolvimento de aplicações e sistemas distribuídos. </li></ul>Cliente Servidor Middleware Middleware
  4. 4. Benefícios do Middleware de Comunicação <ul><li>esconde do programador diferenças entre </li></ul><ul><ul><li>plataformas de hardware </li></ul></ul><ul><ul><li>sistemas operacionais </li></ul></ul><ul><ul><li>bibliotecas de comunicação </li></ul></ul><ul><ul><li>protocolos de comunicação </li></ul></ul><ul><ul><li>formatação de dados </li></ul></ul><ul><ul><li>linguagens de programação </li></ul></ul><ul><ul><li>modelos de programação </li></ul></ul>
  5. 5. Esconde as Heterogeneidades Middleware Linux PC Middleware Windows PC Middleware Solaris Sparc Middleware MacOS iMAC Middleware PalmOS Palm
  6. 6. Outros Benefícios <ul><li>Gerenciamento de Nomes e Referências </li></ul><ul><li>Ativação Automática de Serviços </li></ul><ul><li>Seleção do Receptor das Mensagens </li></ul><ul><li>Migração de Serviços </li></ul><ul><li>Controle de Qualidade de Serviço (QoS) </li></ul><ul><li>Gerenciamento de Concorrência </li></ul><ul><ul><li>único thread, thread para cada serviço, para cada cliente, pool de threads etc. </li></ul></ul><ul><li>Gerenciamento de Conexões </li></ul>
  7. 7. Serviços Padronizados <ul><li>Nomes </li></ul><ul><li>Negociação ( Trading ) </li></ul><ul><li>Tolerância a Falhas </li></ul><ul><li>Segurança </li></ul><ul><li>Transações </li></ul><ul><li>Persitência </li></ul><ul><li>etc. etc. </li></ul>
  8. 8. Principais Plataformas de Middleware Existentes <ul><li>CORBA da OMG </li></ul><ul><li>J2EE da Sun (também J2ME e J2SE) </li></ul><ul><li>DCOM da Microsoft </li></ul><ul><li>.NET da Microsoft (ainda em formação) </li></ul>
  9. 9. Conclusão Parcial <ul><li>Sistemas de middleware facilitam enormemente a criação de aplicações distribuídas complexas. </li></ul><ul><li>Mas o mundo está se tornando mais dinâmico a cada dia. </li></ul><ul><li>O middleware convencional está preparado para os desafios das próximas décadas? </li></ul>
  10. 10. Limitações dos Primeiros Sistemas de Middleware <ul><li>Modelo de concorrência fixo </li></ul><ul><li>Protocolo de transporte fixo (e.g., IIOP /TCP/IP) </li></ul><ul><li>Estratégia de segurança fixa </li></ul><ul><ul><li>( normalmente nenhuma ) </li></ul></ul><ul><li>Algoritmo de escalonamento fixo </li></ul><ul><li>Formatação de dados fixa </li></ul><ul><li>Arquitetura monolítica </li></ul><ul><ul><li>tudo ou nada  sistemas enormes </li></ul></ul>
  11. 11. Ambientes onde arquiteturas fixas e monolíticas não funcionam <ul><li>Sistemas Altamente Dinâmicos </li></ul><ul><ul><li>Computação Móvel </li></ul></ul><ul><ul><li>Computação Ubíqua </li></ul></ul><ul><ul><li>Multimídia </li></ul></ul><ul><li>Sistemas Especializados </li></ul><ul><ul><li>Sistemas embutidos ou dedicados </li></ul></ul><ul><ul><li>Aplicações adaptativas </li></ul></ul>
  12. 12. Paradoxo do Middleware <ul><li>A maior parte das aplicações necessitam que o middleware esconda os detalhes das camadas inferiores. </li></ul><ul><li>Algumas aplicações podem obter grandes melhorias em desempenho se puderem observar e manipular os detalhes das camadas inferiores. </li></ul>
  13. 13. Solução: Modelo Reflexivo para Middleware <ul><li>Middleware Reflexivo: </li></ul><ul><li>Oferece transparência para as aplicações que a desejam. </li></ul><ul><li>Permite a inspeção e manipulação dos detalhes internos do Middleware e do SO para as aplicações que necessitarem. </li></ul>
  14. 14. Middleware Reflexivo Cliente Servidor Middleware Middleware meta-interface interface convencional
  15. 15. Interfaces <ul><li>Interface Convencional </li></ul><ul><li>permite a execução de aplicações convencionais </li></ul><ul><li>Meta-Interfaces </li></ul><ul><li>inspeção dos componentes internos do middleware </li></ul><ul><li>alteração da configuração interna do middleware </li></ul><ul><li>inspeção do estado dinâmico do middleware </li></ul><ul><li>inspeção do estado dinâmico do SO </li></ul><ul><li>inspeção da configuração estática do SO e do HW </li></ul>
  16. 16. Reflexão Computacional <ul><li>Si stem a s Reflexivos [Smith 84] </li></ul><ul><li>Meta-Object Protocol (MOP) [Kiczales 91] </li></ul><ul><li>ORBs Reflexivos [Singhai and Campbell 97] </li></ul><ul><li>Reflexão: “pensar” sobre si mesmo. </li></ul><ul><ul><li>manter representação de sua estrutura interna </li></ul></ul><ul><ul><li>inspecionar configuração interna </li></ul></ul><ul><ul><li>alterar configuração interna </li></ul></ul>
  17. 17. Exemplos de Sistemas de Middleware Reflexivos <ul><li>dynamicTAO </li></ul><ul><ul><li>University of Illinois at Urbana-Champaign </li></ul></ul><ul><li>Open ORB </li></ul><ul><ul><li>Lancaster University </li></ul></ul><ul><li>UIC </li></ul><ul><ul><li>UIUC / UbiCore </li></ul></ul><ul><li>Outros </li></ul><ul><ul><li>LuaORB, LORB, mChaRM, COMERA, OpenCOM </li></ul></ul>
  18. 18. dynamicTAO <ul><li>Extensão do ORB CORBA TAO [Schmidt et al] </li></ul><ul><li>Escrito em C++ </li></ul><ul><li>Design m odular baseado em padrões de projeto OO. </li></ul><ul><li>TAO já permitia configuração no momento da inicialização: </li></ul><ul><ul><li>modelo de concorrência (thread s ) </li></ul></ul><ul><ul><li>demultiplexação de mensagens </li></ul></ul><ul><ul><li>escalonamento </li></ul></ul><ul><ul><li>gerenciamento de conexões </li></ul></ul>
  19. 19. Acrescentando Suporte para Reconfiguração Dinâmica <ul><li>dynamicTAO exporta a interface DynamicConfigurator que permite: </li></ul><ul><li>1. Transfer ência de component e s através da Internet. </li></ul><ul><li>2. Carga e descarga dinâmica de component e s . </li></ul><ul><li>3. Inspe ção e modificação da configuração do ORB (e das aplicações sendo executados sobre ele). </li></ul>
  20. 20. Reificação da Es trutur a do ORB <ul><li>Arcabouço ComponentConfigurator </li></ul><ul><li>Armazena dependências entre componentes. </li></ul><ul><li>Permite navegação, inspeção e reconfiguração. </li></ul><ul><li>Pode ser personalizado através de herança OO. </li></ul>
  21. 21. Estrutura do dynamicTAO
  22. 22. DOCTOR D ynamic O RB C onfiguration T ool
  23. 23. Reconfigura ção com Agent e s Móveis <ul><li>Para sistemas de grande escala </li></ul><ul><li>Agent e carrega </li></ul><ul><ul><li>gra fo </li></ul></ul><ul><ul><li>script de reconfiguração </li></ul></ul><ul><ul><li>estado </li></ul></ul><ul><ul><li>result ados </li></ul></ul>
  24. 24. Aplicações de dynamicTAO <ul><li>Monitoramento </li></ul><ul><ul><li>configurável </li></ul></ul><ul><li>Segurança </li></ul><ul><ul><li>controle de acesso com DAC, MAC, RBAC. </li></ul></ul><ul><li>Distribuição escalável de multimídia </li></ul><ul><li>QoS em multimídia (MONET @ uiuc) </li></ul><ul><li>Base do SO experimental 2K (SRG @ uiuc) </li></ul>
  25. 25. Open ORB <ul><li>Construído a partir do zero no modelo reflexivo </li></ul><ul><li>Componentes: </li></ul><ul><ul><li>implementam os vários elementos funcionais do ORB </li></ul></ul><ul><li>Instâncias personalizadas da plataforma: </li></ul><ul><ul><li>produzidas através da combinação dos componentes apropriados </li></ul></ul><ul><li>Modelo de componentes </li></ul><ul><ul><li>composição hierárquica </li></ul></ul><ul><ul><li>distribuição </li></ul></ul><ul><ul><li>componentes como entidades de tempo de execução </li></ul></ul>
  26. 26. Open ORB: Reconfiguração Dinâmica <ul><li>Reflexão como princípio fundamental </li></ul><ul><ul><li>Uma clara separação entre </li></ul></ul><ul><ul><ul><li>nível base : componentes que implementam os serviços usuais de middleware </li></ul></ul></ul><ul><ul><ul><li>meta-nível : mecanismos que reificam a implementação da plataforma </li></ul></ul></ul><ul><ul><ul><ul><li>inspeção e adaptação dinâmica </li></ul></ul></ul></ul><ul><ul><li>O meta-nível é definido utilizando o mesmo modelo de componentes do nível base </li></ul></ul><ul><ul><ul><li>reflexão pode também ser aplicada ao meta-nível </li></ul></ul></ul>
  27. 27. Open ORB: Múltiplos Modelos de Meta-espaço
  28. 28. Open ORB: Meta-espaço de Interfaces <ul><li>Representação externa de um componente </li></ul><ul><ul><li>conjunto de interfaces exportadas </li></ul></ul><ul><ul><li>operações e atributos de uma interface </li></ul></ul><ul><li>MOP: Inspeção </li></ul><ul><ul><li>busca e enumeração de interfaces </li></ul></ul><ul><ul><li>enumeração das operações e atributos de uma interface </li></ul></ul>
  29. 29. Open ORB: Meta-espaço de Arquitetura <ul><li>Representação interna de um componente </li></ul><ul><li>Arquitetura de software do componente </li></ul><ul><ul><li>grafo de componentes </li></ul></ul><ul><ul><ul><li>interconexões entre os componentes mais primitivos que compõem o componente reificado </li></ul></ul></ul><ul><ul><li>restrições arquiteturais </li></ul></ul><ul><ul><ul><li>regras para validar configurações de componentes </li></ul></ul></ul><ul><ul><ul><li>facilitam a manutenção da consistência do ORB após reconfigurações </li></ul></ul></ul>
  30. 30. Open ORB: Modelo de Arq uitetura – Exemplo Grafo de componentes Restrições arquiteturais <ul><li>Componente A depende do componente C </li></ul><ul><li>Componente D não pode ser substituído ou removido </li></ul><ul><li>Interface 1 do componente B só pode ser ligada a uma interface exatamente equivalente </li></ul>
  31. 31. Open ORB: Meta-espaço de Interceptadores <ul><li>Permite adaptar as propriedades não-funcionais associadas às interfaces de componentes, tais como </li></ul><ul><ul><li>segurança e sincronização em tempo real </li></ul></ul><ul><li>Pré- e pós-processamento das interações emitidas e recebidas em uma interface </li></ul><ul><li>Interceptadores podem ser adicionados ou removidos </li></ul><ul><ul><li>dinamicamente </li></ul></ul><ul><ul><li>em pontos arbitrários da implementação da plataforma </li></ul></ul>
  32. 32. Open ORB: Meta-espaço de Recursos <ul><li>Acesso padronizado </li></ul><ul><ul><li>aos recursos subjacentes da plataforma </li></ul></ul><ul><ul><li>aos mecanismos utilizados para o seu gerenciamento </li></ul></ul><ul><li>Inspeção e reconfiguração </li></ul><ul><ul><li>recursos alocados a tarefas específicas </li></ul></ul><ul><ul><ul><li>quantidade alocada </li></ul></ul></ul><ul><ul><li>parâmetros associados aos recursos </li></ul></ul><ul><ul><ul><li>prioridades, algoritmos de gerenciamento </li></ul></ul></ul><ul><li>Fundamental para o gerenciamento de QoS em ambientes dinâmicos </li></ul>
  33. 33. Open ORB: Protótipos <ul><li>OOPP – Open ORB Python Prototype </li></ul><ul><li>OpenCOM </li></ul>
  34. 34. dynamicTAO e Open ORB: Considerações gerais <ul><li>Dois projetos independentes, mas com </li></ul><ul><ul><li>motivações muito parecidas </li></ul></ul><ul><ul><li>levaram ao mesmo modelo arquitetural: reflexão </li></ul></ul><ul><li>dynamicTAO </li></ul><ul><ul><li>re-engenharia de TAO para adicionar flexibilidade de tempo de execução. </li></ul></ul><ul><li>Open ORB </li></ul><ul><ul><li>projeto e implementação do middleware em função dos princípios de reflexão computacional. </li></ul></ul>
  35. 35. Middleware (Enxuto) Baseado em Componentes <ul><li>Uso da tecnologia de componentes de software para construção da plataforma. </li></ul><ul><li>Serviços e mecanismos do ORB implementados como componentes </li></ul><ul><ul><li>implementações alternativas com propriedades diferentes. </li></ul></ul><ul><li>Plataforma pode ser configurada com apenas os componentes necessários. </li></ul>
  36. 36. UIC <ul><li>Universally Interoperable Core </li></ul><ul><ul><li>UIUC e ubi-core.com </li></ul></ul><ul><li>A configuração de componentes pode ser alterada em tempo de execução </li></ul><ul><ul><li>adicionar, substituir, remover componentes </li></ul></ul><ul><li>Implementação de diferentes personalidades de ORB </li></ul><ul><ul><li>Ex.: CORBA, Java RMI </li></ul></ul>
  37. 37. UIC: configuração abstrata <ul><li>Um esqueleto de ORB com componentes abstratos (ganchos) representando os tipos de funcionalidades comuns de middleware: </li></ul><ul><ul><li>protocolos de comunicação </li></ul></ul><ul><ul><li>mecanismos de gerenciamento de conexões </li></ul></ul><ul><ul><li>seriação e de-seriação </li></ul></ul><ul><ul><li>chamada de métodos </li></ul></ul><ul><ul><li>escalonamento </li></ul></ul><ul><ul><li>geração de referências de objetos </li></ul></ul><ul><ul><li>APIs para clientes e servidores </li></ul></ul><ul><ul><li>gerenciamento de memória e concorrência </li></ul></ul>
  38. 38. UIC: configuração concreta <ul><li>Implementações concretas de cada componente abstrato são carregados dinamicamente. </li></ul><ul><ul><li>Diferentes personalidades de ORB podem ser criadas. </li></ul></ul><ul><ul><li>Permite atender aos requisitos de aplicações específicas. </li></ul></ul>
  39. 39. UIC: reconfiguração dinâmica <ul><li>Mecanismos internos do ORB podem ser reconfigurados em tempo de execução </li></ul><ul><ul><li>substituição da implementação de componentes abstratos. </li></ul></ul><ul><li>Por exemplo: variação de conectividade </li></ul><ul><ul><li>computador móvel em rede com fio: TCP </li></ul></ul><ul><ul><li>deslocamento para uma rede sem fio: WTCP </li></ul></ul><ul><ul><li>mecanismos de transporte otimizados para cada ambiente. </li></ul></ul>
  40. 40. UIC: Configurações Enxutas <ul><li>Middleware para um cliente minimal adotando personalidade CORBA: </li></ul><ul><ul><li>29KB no Windows CE </li></ul></ul><ul><ul><li>72KB no Windows 2000 </li></ul></ul><ul><ul><li>18KB no PalmOS </li></ul></ul><ul><li>Middleware minimal para cliente / servidor </li></ul><ul><ul><li>48.5KB no Windows CE </li></ul></ul><ul><ul><li>100KB no Windows 2000 </li></ul></ul><ul><ul><li>31KB no PalmOS </li></ul></ul><ul><li>Conclusão: ideal para sistemas embutidos </li></ul>
  41. 41. Outros Sistemas de Middleware Reflexivo <ul><li>mChaRM (U. Genova, Ítália) </li></ul><ul><li>COMERA (Microsoft) </li></ul><ul><li>AspectIX (Friedrich-Alexander U., Alemanha) </li></ul><ul><li>LuaORB (PUC-Rio) </li></ul><ul><li>Meu foco atual: </li></ul><ul><ul><li>LORB (PUC-Rio) (Projeto InteGrade) </li></ul></ul>
  42. 42. O Futuro do Middleware <ul><li>Arquiteturas convencionais de middleware tem adotado os resultados de pesquisas em middleware reflexivo </li></ul><ul><ul><li>Ex.: interceptadores em CORBA, carga dinâmica de componentes em Orbix, arquitetura do JBoss. </li></ul></ul><ul><ul><li>Middleware existente está se tornando mais flexível e reconfigurável: abordagem ad hoc. </li></ul></ul><ul><li>Entretanto, a natureza de “caixa preta monolítica” de middleware convencional limita o quanto da implementação da plataforma pode ser exposta. </li></ul>
  43. 43. O Futuro que Esperamos <ul><li>Adoção de reflexão como princípio básico para o design de middleware. </li></ul><ul><li>Quais seriam os benefícios: </li></ul><ul><ul><li>solução genérica, </li></ul></ul><ul><ul><li>abertura abrangente dos aspectos internos da plataforma, </li></ul></ul><ul><ul><li>manipulação e adaptação da implementação da plataforma de maneiras não previstas a priori. </li></ul></ul>
  44. 44. O que ainda falta fazer? <ul><li>Definição de um padrão internacional para middleware reflexivo </li></ul><ul><ul><li>de forma a garantir interoperabilidade. </li></ul></ul><ul><li>Pesquisa teórica e prática em ferramentas para garantia de consistência em reconfigurações dinâmicas. </li></ul><ul><li>Uso de middleware reflexivo por aplicações variadas. </li></ul><ul><li>Bibliotecas de mecanismos automatizados para adaptar o middleware em tempo de execução </li></ul><ul><ul><li>com o objetivo de facilitar a construção de aplicações adaptativas. </li></ul></ul>
  45. 45. International Workshop on Reflective Middleware <ul><li>1 st Workshop on Reflective Middleware </li></ul><ul><ul><li>junto com Middleware’2000 em NY </li></ul></ul><ul><li>2 nd Workshop on Adaptive and Reflective Middleware </li></ul><ul><ul><li>junto com Middleware’2003 no Rio em junho </li></ul></ul><ul><li>Em ambos os casos os artigos estão disponíveis na Web. </li></ul>
  46. 46. Conclusões <ul><li>Middleware Reflexivo já é um conceito bem conhecido e aceito na comunidade acadêmica de middleware. </li></ul><ul><li>A penetração em sistemas e padrões comerciais está avançando (mas mais lentamente do que gostaríamos). </li></ul><ul><li>É uma área de pesquisa ativa. </li></ul>
  47. 47. M aiores I nforma ções <ul><li>Visão geral sobre Middleware Reflexivo: </li></ul><ul><li>www.ime.usp.br/~kon/papers/cacm02.pdf </li></ul><ul><li>Grupo de Sistemas Distribuídos do IME/USP: </li></ul><ul><li>http://gsd.ime.usp.br </li></ul>

×