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

Mais conteúdo relacionado

PPTX
Middlewares
PPT
As Cinco Forças de Porter
PDF
Gestão de compras
PDF
MRP na prática - gerenciamento da produção
PPT
PPTX
Aula 3: Introdução a sistema de arquivos
PPT
Modelos de Processo de Software
PDF
Aula 2 - Processos de Software
Middlewares
As Cinco Forças de Porter
Gestão de compras
MRP na prática - gerenciamento da produção
Aula 3: Introdução a sistema de arquivos
Modelos de Processo de Software
Aula 2 - Processos de Software

Mais procurados (20)

PPT
Aula 2 - Introdução a Banco de Dados
PDF
Aula 3 - Planejamento e Controle da Produção II
PPT
Informática slides ótimo
PDF
Introdução à sistemas distribuídos
PDF
Modelo em Cascata
PPTX
Informática Básica - Aula 06 - Utilitários e Ferramentas do Sistema
PDF
Modelos de estruturação de sistemas distribuídos
PDF
Introdução à gestão de estoques
PDF
Introdução a Gerência de Configuração de Software
PPTX
Tipos de Sistema operacional
PDF
Banco de Dados II Aula 08 - Linguagem de Consulta SQL (Comandos DML)
PDF
Scrum - Conceitos, Práticas e Experiências - Manoel Pimentel
PPT
MRP II - Manufacturing Resource Planning ( Planejamento de Recursos de Produção)
PPT
ApresentaçãO2 Sistema Operacional
ODP
SLIDE SOBRE O LIBREOFFICE
PPTX
220126-1_Introdução_a_Anatomia.pptx
PDF
Marcos centros de empreendedorismo acadêmicos no brasil
PDF
Apostila de História e introdução á logística
Aula 2 - Introdução a Banco de Dados
Aula 3 - Planejamento e Controle da Produção II
Informática slides ótimo
Introdução à sistemas distribuídos
Modelo em Cascata
Informática Básica - Aula 06 - Utilitários e Ferramentas do Sistema
Modelos de estruturação de sistemas distribuídos
Introdução à gestão de estoques
Introdução a Gerência de Configuração de Software
Tipos de Sistema operacional
Banco de Dados II Aula 08 - Linguagem de Consulta SQL (Comandos DML)
Scrum - Conceitos, Práticas e Experiências - Manoel Pimentel
MRP II - Manufacturing Resource Planning ( Planejamento de Recursos de Produção)
ApresentaçãO2 Sistema Operacional
SLIDE SOBRE O LIBREOFFICE
220126-1_Introdução_a_Anatomia.pptx
Marcos centros de empreendedorismo acadêmicos no brasil
Apostila de História e introdução á logística
Anúncio

Destaque (8)

PPT
PPTX
Sistemas Distribuidos, Middleware e RPC
DOCX
PDF
Communication middleware
PDF
Sistemas Distribuídos - Comunicação Distribuída – Middleware
PPT
Middleware
PDF
Middleware and Middleware in distributed application
PPT
Middleware Basics
Sistemas Distribuidos, Middleware e RPC
Communication middleware
Sistemas Distribuídos - Comunicação Distribuída – Middleware
Middleware
Middleware and Middleware in distributed application
Middleware Basics
Anúncio

Semelhante a Middleware Reflexivo (20)

PPT
middlewareReflexivo.ppt
PDF
PPTX
PPT
Objetos distribuídos e invocação remota - CORBA
PPT
O que é Middleware? E o que isso tem a ver com SOA?
PDF
PDF
Corbawebserves
PPTX
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
PPTX
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
PDF
Arquitectura e modelos de sistemas distribuidos
PPTX
Aula sobre Sistemas Distribuidos Atualizado
ODP
Pense Aberto, Pense Linux
PDF
Soa - Arquitetura orientada a serviços
PPTX
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
PPTX
Serviços na Plataforma .NET (SOA, REST, Microservices, WCF, Web API)
PDF
Aula 1 - Introducao.pdf
PDF
JustJava 2005: Web Services em Java com o JWSDP 1.5
PPTX
Microservices
PDF
Soa Woa Rest
middlewareReflexivo.ppt
Objetos distribuídos e invocação remota - CORBA
O que é Middleware? E o que isso tem a ver com SOA?
Corbawebserves
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitectura e modelos de sistemas distribuidos
Aula sobre Sistemas Distribuidos Atualizado
Pense Aberto, Pense Linux
Soa - Arquitetura orientada a serviços
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Serviços na Plataforma .NET (SOA, REST, Microservices, WCF, Web API)
Aula 1 - Introducao.pdf
JustJava 2005: Web Services em Java com o JWSDP 1.5
Microservices
Soa Woa Rest

Mais de elliando dias (20)

PDF
Clojurescript slides
PDF
Why you should be excited about ClojureScript
PDF
Functional Programming with Immutable Data Structures
PPT
Nomenclatura e peças de container
PDF
Geometria Projetiva
PDF
Polyglot and Poly-paradigm Programming for Better Agility
PDF
Javascript Libraries
PDF
How to Make an Eight Bit Computer and Save the World!
PDF
Ragel talk
PDF
A Practical Guide to Connecting Hardware to the Web
PDF
Introdução ao Arduino
PDF
Minicurso arduino
PDF
Incanter Data Sorcery
PDF
PDF
Fab.in.a.box - Fab Academy: Machine Design
PDF
The Digital Revolution: Machines that makes
PDF
Hadoop + Clojure
PDF
Hadoop - Simple. Scalable.
PDF
Hadoop and Hive Development at Facebook
PDF
Multi-core Parallelization in Clojure - a Case Study
Clojurescript slides
Why you should be excited about ClojureScript
Functional Programming with Immutable Data Structures
Nomenclatura e peças de container
Geometria Projetiva
Polyglot and Poly-paradigm Programming for Better Agility
Javascript Libraries
How to Make an Eight Bit Computer and Save the World!
Ragel talk
A Practical Guide to Connecting Hardware to the Web
Introdução ao Arduino
Minicurso arduino
Incanter Data Sorcery
Fab.in.a.box - Fab Academy: Machine Design
The Digital Revolution: Machines that makes
Hadoop + Clojure
Hadoop - Simple. Scalable.
Hadoop and Hive Development at Facebook
Multi-core Parallelization in Clojure - a Case Study

Último (19)

PDF
COBITxITIL-Entenda as diferença em uso governança TI
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PDF
Aula04-Academia Heri- Tecnologia Geral 2025
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
Apple Pippin Uma breve introdução. - David Glotz
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PDF
Processos na gestão de transportes, TM100 Col18
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PPTX
Aula 18 - Manipulacao De Arquivos python
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
COBITxITIL-Entenda as diferença em uso governança TI
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Aula04-Academia Heri- Tecnologia Geral 2025
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Custos e liquidação no SAP Transportation Management, TM130 Col18
Apple Pippin Uma breve introdução. - David Glotz
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Processos na gestão de transportes, TM100 Col18
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Aula 18 - Manipulacao De Arquivos python
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...

Middleware Reflexivo

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