Adriano Medeiros dos Santos. Suporte a Componentes Compostos Para o Middleware SCS. Dissertação de Mestrado

Documentos relacionados
Renato Figueiró Maia. Um Framework para Sistemas Baseados em Componentes Distribuídos. Informática DEPARTAMENTO DE INFORMÁTICA

Adriano Francisco Branco. Um modelo de programação para RSSF com. Dissertação de Mestrado

Um Estudo Sobre Middlewares Adaptáveis

Bruno Siqueira Silva. Workflows dinâmicos em gerência de projetos ágeis. Dissertação de Mestrado

Matchmaking Uma infraestrutura para alinhamento de esquemas

Um ambiente de suporte para uma linguagem de modelagem de sistemas multi-agentes

Bruno Loureiro Rezende. Um Framework para a Automação de Testes com Linguagens de Especificação Configuráveis DISSERTAÇÃO DE MESTRADO

Sistema para Consultas sobre Banco de Dados Relacional Baseado em Palavras-Chave

Uma meta-ferramenta de geração de diagramas utilizada na engenharia reversa de sistemas legados.

Vinci Pegoretti Amorim. Uma Arquitetura Flexível para Replicação de Bases Distribuídas Heterogêneas. Dissertação de Mestrado

Usando a abordagem MDA no desenvolvimento de sistemas multi-agentes

Bruno Baère Pederassi Lomba de Araujo. Um estudo sobre adaptatividade dinâmica de dificuldade em jogos. Dissertação de Mestrado

Iam Vita Jabour. O Impacto de Atributos Estruturais na Identificação de Tabelas e Listas em Documentos HTML. Dissertação de Mestrado

Criação Automática de Visões Materializadas em SGBDs Relacionais

SDiff: Uma ferramenta para comparação de documentos com base nas suas estruturas sintáticas

Proposta de um sistema de suporte à decisão para programação de navios baseado em otimização: um caso prático

Geração semi-automática de massas de testes funcionais a partir da composição de casos de uso e tabelas de decisão

Um Modelo de Componentes de Software com Suporte a Múltiplas Versões

Integração de Ontologia com Modelagem de Processo: Um Método para Facilitar a Elicitação de Requisitos

Marcos Borges Pessoa. Geração e execução automática de scripts de teste para aplicações web a partir de casos de uso direcionados por comportamento

UMA IMPLEMENTAÇÃO DO SERVIÇO WMS SOBRE A BIBLIOTECA TERRALIB

QEEF-G: Execução Paralela Adaptativa de Consultas Iterativas

Considerações sobre o Afeto em Psicanálise

Gerenciando Conflitos em Reuniões: Uma Estratégia para a Elicitação de Requisitos de Software

Thomas de Campos Tsuchida. Modelagem da localização de pólos de venda de derivados de petróleo. Dissertação de Mestrado (Opção Profissional)

Otávio de Pinho Forin Braga. Uma Arquitetura para Síntese de Imagens Fotorrealistas baseada em Técnicas de Monte Carlo DISSERTAÇÃO DE MESTRADO

Mauricio Kreczmarsky Guimarães Meinicke. Opacidade 3D na Visualização Volumétrica de Dados Sísmicos

Bruno de Figueiredo Melo e Souza. Modelos de fatoração matricial para recomendação de vídeos. Dissertação de Mestrado

Uma Proposta de Sistema de Dependência a Distância Usando a Plataforma Moodle

Relação entre Governança Corporativa e Remuneração de Executivos no Brasil

APLICAÇÃO DE CONCEITOS DE ENGENHARIA DE FATORES HUMANOS: UM ESTUDO DE CASO EM UMA EMPRESA DE OPERAÇÕES LOGÍSTICAS

Mineração de Dados voltada para Recomendação no Âmbito de Marketing de Relacionamento

Um Framework de Jogos Sérios para Mercado de Informações com Aplicação em Ética Empresarial

A INTERNET E A EDUCAÇÃO A DISTÂNCIA DOS SURDOS NO BRASIL: UMA EXPERIÊNCIA DE INTEGRAÇÃO EM UM MEIO EXCLUDENTE

Beatriz Soares de Araujo Ferreira. Um estudo sobre as conexões afetivas no autismo

Francisco Eduardo Torres Cursino de Moura. Uma proposta para Rendering Baseado em Imagens em celulares

Estudo Comparativo de Estratégias de Classificação de Páginas Web

Framework para coordenação e mediação de Web Services modelados como Learning Objects para ambientes de aprendizado na Web

Mônica Nogueira de Assis. Cancioneiro Transgressor Um estudo sobre a poética da canção em Renato Russo e Cazuza. Dissertação de Mestrado

Experimentos de Previsão da Estrutura a Termo da Taxa de Juros Americana: Reversão à Media, Inércia e Influência de Variáveis Macroeconômicas

A importância da dívida cambial no endividamento público brasileiro

Desenvolvimento e avaliação de um jogo de computador para ensino de vocabulário para crianças com autismo

Utilização de uma estratégia para identificação de fontes de informação na fase de elicitação

A prática de atividades físicas, a idade cognitiva e as restrições intrapessoais entre pessoas mais velhas

Luzia da Costa Tonon. O Teorema de Cramér-Lundberg via martingais DISSERTAÇÃO DE MESTRADO. Programa de Pós Graduação em Matemática

Sistema de recomendação de segundo nível para suporte à produção de matérias jornalísticas

SQLLOMining: Obtenção de Objetos de Aprendizagem utilizando técnicas de Aprendizado de Máquina

Laura Gonçalves Carvalho

OPERADORES LOGÍSTICOS E SEUS CLIENTES: UM ESTUDO EMPÍRICO

Elicitação de requisitos de software através da utilização de questionários

Liberdade e verdade na filosofia cartesiana

Gingando em Português: como os aspectos culturais presentes na Capoeira auxiliam o estrangeiro na aquisição de competência intercultural

Suzana Soares Duprat. Entretenimento Via Celular para Baixa Renda. Dissertação de Mestrado. Dissertação apresentada ao Programa de Pósgraduação

Geraldo da Silva Rocha Netto. Escalonamento Flexível de Workflows com Restrições Temporais. Dissertação de Mestrado

Gustavo Simão Rodrigues

João Coutinho Machado. Um estudo sobre o desenvolvimento orientado a serviços

Uma abordagem baseada em SPH para animação interativa de águas rasas em jogos

Aplicação da Análise de Sistemas à Definição de Processos de Desenvolvimento de Software

Carla Jardim Dias. Um modelo estocástico para o fluxo de caixa de um plano de previdência de um indivíduo. Dissertação de Mestrado

Carlos Roberto da Costa Ferreira. Interpolação Modificada de LSF's. Dissertação de Mestrado

Política Monetária e Investimento no Brasil

Avaliação Probabilística de Reservas de Óleo e Gás Considerando o Efeito da Variação do Preço do Óleo

A utilização da animação no Ensino Fundamental para a Educação em Saúde

Pontifícia Universidade Católica do Rio de Janeiro

Mapeamento Automático de Horizontes e Falhas em Dados Sísmicos 3D baseado no algoritmo de Gás Neural Evolutivo

Configuração Colaborativa de Linha de Produtos de Software

Patrícia Teixeira de Sá

Mercados Futuros Agropecuários no Brasil: Análise dos Contratos e da Formação dos Preços Futuros

Heidegger e a relação homem-técnica-natureza na crise ambiental contemporânea

DISSERTAÇÃO DE MESTRADO

Mariana Mostardeiro. Métodos de Planejamento de Sistemas Celulares WCDMA. Dissertação de Mestrado

Certeza não é verdade Romance policial e experiência urbana

Pedro Tiago Barbosa do Couto. Resolução de problemas de transporte rodoviário de cargas utilizando programação inteira DISSERTAÇÃO DE MESTRADO

Reducionista Prudente ou Usurpador Cientificista? A Teoria da Consciência de Daniel Dennett

Tatiana Waintraub. Modelagem da calçada de Copacabana. Dissertação de Mestrado

Efeitos de Intervenções Esterilizadas do Banco Central do Brasil sobre a Taxa de Câmbio

Rebecca Coscarelli Cardoso Bastos

Marcelo Ribeiro de Carvalho. Modelagem da Operação de um Recinto Especial para Despacho Aduaneiro de Exportação (Redex) Dissertação de Mestrado

Comparação de estratégias de construção de poços marítimos incorporando incertezas

Sándor Ferenczi: entre os limites da clínica e as experimentações técnicas

Pontifícia Universidade Católica do Rio de Janeiro

Hélcio Bezerra de Mello. Proxies Inteligentes Automáticas DISSERTAÇÃO DE MESTRADO. Programa de Pós graduação em Informática

Memes: Conceito de Conteúdo de Informação Como Alternativa de Pesquisa de Posicionamento de Marca

Avaliação Preliminar dos Movimentos Aéreos no Aeroporto Internacional Antônio Carlos Jobim Galeão

Uma Avaliação Empírica de um Ambiente Favorável para o Desenvolvimento Dirigido por Testes

A competência comunicativa nas provas de redação do Deutsches Sprachdiplom e do Exame Nacional do Ensino Médio

Francisco Benjamim Filho. XHITS: Estendendo o Algoritmo HITS para Extração de Tópicos na WWW DISSERTAÇÃO DE MESTRADO

Alexandra de Almeida. A noção de sublime em Kant e a questão da comoção na arte. Dissertação de Mestrado

Pontifícia Universidade Católica do Rio de Janeiro

Guilherme Faria Gonçalves. Análise das Estratégias Competitivas da Indústria Farmacêutica Brasileira Segundo a Tipologia de Chrisman

Quais as Bases do Comprometimento dos Indivíduos da Geração Y em uma Empresa do Setor Privado no Brasil?

Carolina Bertassoni dos Santos. Natalidade e Política: Hannah Arendt leitora de Agostinho. Dissertação de Mestrado

Roberta Giannini. Uma análise de transcriações cinematográficas a partir de Julio Cortázar. Dissertação de Mestrado

O Design de Sinalização no Brasil: a introdução de novos conceitos de 1970 a 2000

Análise da satisfação dos clientes de serviços de cabotagem no Brasil: Um estudo de caso

Natália Moreira Félix

Da sublimação à idealização: implicações psíquicas das transformações no mundo do trabalho

Patrícia Kneipp Tavares de Souza. Estratégias de marketing internacional para marcas brasileiras: Um estudo exploratório DISSERTAÇÃO DE MESTRADO

Transcrição:

Adriano Medeiros dos Santos Suporte a Componentes Compostos Para o Middleware SCS Dissertação de Mestrado Dissertação apresentada ao Programa de Pós graduação em Informática do Departamento de Informática do Centro Técnico Científico da PUC Rio como requisito parcial para obtenção do grau de Mestre em Informática. Orientador: Prof. Renato Fontoura de Gusmão Cerqueira Rio de Janeiro Abril de 2012

Adriano Medeiros dos Santos Suporte a Componentes Compostos Para o Middleware SCS Dissertação apresentada ao Programa de Pós graduação em Informática do Departamento de Informática do Centro Técnico Científico da PUC Rio como requisito parcial para obtenção do grau de Mestre em Informática. Aprovada pela Comissão Examinadora abaixo assinada. Prof. Renato Fontoura de Gusmão Cerqueira Orientador Departamento de Informática PUC Rio Prof. Alessandro Fabricio Garcia Departamento de Informática PUC-Rio Prof. Antônio Tadeu Azevedo Gomes LNCC Prof. José Eugenio Leal Coordenador Setorial do Centro Técnico Científico PUC Rio Rio de Janeiro, 03 de Abril de 2012

Todos os direitos reservados. É proibida a reprodução total ou parcial do trabalho sem autorização da universidade, do autor e do orientador. Adriano Medeiros dos Santos Graduou-se em Bacharelado em Ciência da Computação pela UESC. É pesquisador do laboratório Tecnologia em Computação Gráfica (Tecgraf) da PUC-Rio desde Agosto de 2009, onde trabalha no desenvolvimento do middleware SCS que apoia diversos projetos em parceria com a Petrobras S/A. Santos, Adriano Medeiros Ficha Catalográfica Suporte a componentes compostos para o middleware scs / Adriano Medeiros dos Santos; orientador: Renato Fontoura de Gusmão Cerqueira. Rio de Janeiro : PUC Rio, Departamento de Informática, 2012. v., 99 f: il. ; 29,7 cm 1. Dissertação (mestrado) - Pontifícia Universidade Católica do Rio de Janeiro, Departamento de Informática. Inclui referências bibliográficas. 1. Informática Tese. 2. Modelos de Componentes de Software. 3. Programação Orientada a Componentes. 4. Componentes Compostos. 5. Middleware. I. Cerqueira, Renato. II. Pontifícia Universidade Católica do Rio de Janeiro. Departamento de Informática. III. Título. CDD: 004

Agradecimentos Ao meu pai Josembergue Campos dos Santos, meu exemplo de como ser uma pessoa dedicada ao trabalho e sempre me ajudar em decisões como por exemplo investir neste mestrado. À minha mãe Joíse Cristina Medeiros dos Santos, pelo carinho e amor que me deram força para este trabalho. À minha namorada Tiara, pelo amor e compreensão da necessidade do namoro à distância. Ao meu orientador Renato Cerqueira, que acreditou em meu trabalho e me inspirou a alcançar meus objetivos. À PUC Rio e Tecgraf, pelos infraestrutura, sem os quais este trabalho não poderia ter sido realizado. Ao Amadeu pelas explicações e por me mostrar que sempre é bom pensar bem antes de discutir uma idéia. Aos meus amigos, que fizeram com que esse mestrado no Rio de Janeiro longe da família fosse bem animado.

Resumo Santos, Adriano Medeiros; Cerqueira, Renato. Suporte a Componentes Compostos Para o Middleware SCS. Rio de Janeiro, 2012. 99p. Dissertação de Mestrado Departamento de Informática, Pontifícia Universidade Católica do Rio de Janeiro. Diversos modelos de componentes de software apresentam o conceito de componentes compostos, como é o caso do Fractal, OpenCOM, Koala, Kobra e SaveCCM. Um componente composto encapsula outros componentes e é responsável por oferecer mecanismos de configuração e introspecção estrutural, bem como externalizar serviços e dependências internas. A idéia de componentes compostos é reconhecida como uma boa técnica para abstrair estruturas complexas e maximizar o reuso. Entretanto, não existe um estudo mais aprofundado sobre tal mecanismo que aborde questões sobre a configuração inicial dos subcomponentes, o mapeamento de serviços e dependências de subcomponentes através de interfaces do componente composto, formas de navegação, compartilhamento de subcomponentes, ciclo de vida e formas de introspecção estrutural. Neste trabalho foi realizado um levantamento sobre como os modelos Fractal e OpenCOM tratam o conceito de componentes compostos e é proposto um modelo que oferece este suporte. Como estudo experimental foi implementada uma nova versão do SCS com suporte a componentes compostos, o SCS-Composite. Também foi feita uma avaliação da expressividade do SCS-Composite através da adaptação de uma aplicação pré-existente baseada no SCS. Palavras chave Modelos de Componentes de Software. Programação Orientada a Componentes. Componentes Compostos. Middleware.

Abstract Santos, Adriano Medeiros; Cerqueira, Renato (Advisor). Composite Component Support for the SCS Middleware. Rio de Janeiro, 2012. 99p. MSc Dissertation Departamento de Informática, Pontifícia Universidade Católica do Rio de Janeiro. Several software component models support composite components, such as Fractal, OpenCOM, Koala, Kobra and SaveCCM. A composite component encapsulates components and provides introspection and configuration mechanisms. Composite components are recognized as a good practice because abstract complex structures and increase reuse. However, there is not a comprehensive study about composite component mechanisms addressing issues like initial composite configuration, mapping of subcomponents services and dependencies through composite component s interfaces, introspection, component sharing, and composite s life cycle. In this work we perform a study about how the Fractal and OpenCOM apply the composite component concept and we propose a new model for composite components. As an experimental study we implemented a new version of the SCS component system with support for composite components, the SCS-Composite. We also present an evaluation of SCS-Composite through the adaptation of a SCS based application. Keywords Software Component Models. Component-oriented programming. Composite Component. Middleware.

Sumário 1 Introdução 12 1.1 Objetivos e Contribuições 15 1.2 Estrutura do Documento 16 2 Trabalhos Relacionados 18 2.1 Fractal 19 2.2 OpenCOM 22 2.3 Características de Componentes Compostos 26 2.3.1 Suporte ao Desenvolvimento Incremental 26 2.3.2 Mapeamento de Serviços dos Subcomponentes como Serviços do Componente Composto 27 2.3.3 Mapeamento de dependências de subcomponentes como dependências do componente composto 29 2.3.4 Conectores para Binding Vertical 31 2.3.5 Relacionamento Serviço/Componente 32 2.3.6 Compartilhamento de subcomponentes 34 2.3.7 Navegação entre Subcomponente e Componente Composto 36 2.3.8 Mecanismos de Reconfiguração 36 2.4 Considerações Finais 37 3 Modelo SCS com Suporte a Componentes Compostos 39 3.1 Modelo de Componentes SCS 39 3.1.1 Componente 39 3.1.2 Mecanismo de Binding 40 3.2 Modelo de Componentes SCS-Composite 43 3.2.1 Componente Composto 43 3.2.2 Hierarquia de Componentes 44 3.2.3 Externalização de Facetas e Receptáculos 44 3.2.4 Regras de Conexão 46 3.3 Diretrizes do Modelo 47 3.3.1 Suporte ao Desenvolvimento Incremental 47 3.3.2 Mapeamento de Serviços dos Subcomponentes como serviços do componente composto e Conectores Exógenos 48 3.3.3 Relacionamentos Serviço/Componente e Subcomponente/Componente Composto 50 3.3.4 Mapeamento de Dependências de Subcomponentes como Dependências do Componente Composto 50 3.3.5 Compartilhamento de subcomponentes 51 3.3.6 Mecanismos de Reconfiguração 52 3.4 Considerações Finais 52 4 Middleware SCS-Composite 55 4.1 Middleware SCS 55 4.2 Middleware SCS-Composite 57

4.2.1 Estrutura do Componente 57 4.2.2 Mecanismo de binding 60 4.3 Exemplo de Uso 62 4.3.1 Mapeamento de Facetas 62 4.3.2 Mapeamento de Receptáculos 63 4.4 Considerações Finais 65 5 Exemplo de Uso 67 5.1 Modelagem do CAS 67 5.2 Implementação com Middleware SCS 68 5.3 Implementação com Middleware SCS-Composite 71 5.3.1 Gerência sobre Componentes 71 5.3.2 Mapeamento de Serviços Internos 72 5.3.3 Binding Vertical com Aridade 1-n 72 5.3.4 Gerência de Configuração da Aplicação 73 5.4 Comparação do CAS: SCS Vs. SCS-Composite 74 6 Conclusão 77 7 Referências Bibliográficas 80 A Middleware SCS 2.0 83 B Exemplos de Uso 86 B.1 Mapeamento de Facetas 86 B.2 Mapeamento de Receptáculos 90 C Interfaces do CAS 96

Lista de figuras 1.1 Sistema baseado em componentes. Em 1 é ilustrado o binding entre dois componentes; e em 2, é ilustrado binding entre um componente e a plataforma operacional. 13 1.2 Componente primitivo e composto. 14 1.3 Representação dos dois tipos de bindings verticais 14 2.1 Estrutura de um componente no modelo Fractal. 19 2.2 Arquitetura do modelo de componentes OpenCOM (Michael Clarke, 2007). 23 2.3 Um Component Framework em OpenCOM. 24 2.4 Mapeamentos de serviços dos subcomponentes através de interfaces do componente composto. 27 2.5 Exemplo de um cenário do CAS demonstrando a necessidade de disponibilizar serviços internos por interfaces externas diferentes. 28 2.6 Mapeamentos de dependências dos subcomponentes através de interfaces externas do componente composto. 30 2.7 Arquitetura de uma interface gráfica com compartilhamento de subcomponentes. 34 2.8 Cenário onde o compartilhamento de subcomponentes nos leva a uma situação de ambiguidade quanto as dependências do componente compartilhado. 35 3.1 Representação de um componente SCS. 41 3.2 Exemplo de conexão entre facetas e receptáculos de componentes SCS. 42 3.3 Exemplo de uma composição formada pelos componentes A, B e C. 42 3.4 Os dois tipos de receptáculos presentes no SCS-Composite 46 3.5 Exemplos de conexões entre componentes primitivos e compostos. 48 3.6 Mapeamento de uma faceta de um subcomponente para facetas externas diferentes. 48 3.7 Funcionamento de um conector no processo de externalização de facetas. 49 3.8 Representação de externalização de um receptáculo de um subcomponente. 51 4.1 Os dois tipos de receptáculos presentes no SCS-Composite 61 4.2 Arquitetura do exemplo de uso do SCS-Composite Local 62 4.3 Arquitetura do exemplo de uso do SCS-Composite Distribuído. 64 5.1 Modelagem realizada para arquitetura atual do CAS. 69 5.2 Implementação do CAS com o SCS sem suporte a componentes compostos. 69 5.3 Exemplo do uso de conectores no CAS. 73

Lista de tabelas 2.1 Comparação entre os modelos Fractal e OpenCOM sobre características de componentes compostos em conjunto com as decisões realizadas para o modelo SCS. 38

A mente que se abre a uma nova idéia jamais voltará ao seu tamanho original. Albert Einstein (1879 1955)