3 SCS: Sistema de Componentes de Software



Documentos relacionados
3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

5.1 Exemplos de uso Mediante a instanciação de componentes específicos, o OiL pode ser configurado

SISTEMAS DISTRIBUÍDOS

1

Sistemas Distribuídos

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

Introdução ao Modelos de Duas Camadas Cliente Servidor

SISTEMAS DISTRIBUÍDOS

Sistemas Operacionais

Orientação a Objetos

2 Diagrama de Caso de Uso

Manual dos Serviços de Interoperabilidade

Padrões Arquiteturais. Sistemas Distribuídos: Broker

Engenharia de Software III

2 Trabalhos Relacionados

SISTEMAS DISTRIBUÍDOS

LOGs e ALERTAS de DESEMPENHO

5 Framework para coordenação e mediação de Web Services para ambientes de aprendizado à distância

MODELO CLIENTE SERVIDOR

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)

XDOC. Solução otimizada para armazenamento e recuperação de documentos

SISTEMA GERENCIADOR DE BANCO DE DADOS

Técnicas e ferramentas de ataque. Natiel Cazarotto Chiavegatti

2 Ferramentas Utilizadas

ISO/IEC 12207: Gerência de Configuração

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo

Sistemas Distribuídos: Conceitos e Projeto Controle de Acesso

Referências internas são os artefatos usados para ajudar na elaboração do PT tais como:

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados.

4. Qual seria o impacto da escolha de uma chave que possua letras repetidas em uma cifra de transposição?

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA

Análise e Projeto Orientados por Objetos

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, MODELAGEM DE DADOS. Aula 1. Prof. Rafael Dias Ribeiro. M.Sc.

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Operacionais

Aula 02 Conceitos básicos elipse. INFORMÁTICA INDUSTRIAL II ENG1023 Profª. Letícia Chaves Fonseca

Firewall. Alunos: Hélio Cândido Andersson Sales

Faculdades Santa Cruz - Inove. Plano de Aula Base: Livro - Distributed Systems Professor: Jean Louis de Oliveira.

Engenharia de Requisitos Estudo de Caso


agility made possible

Sistemas Operacionais

Tutorial Módulo Frequência

Noções de. Microsoft SQL Server. Microsoft SQL Server

Planejando o aplicativo

ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA

IBM Software Demos The Front-End to SOA

INDICE 1. INTRODUÇÃO CONFIGURAÇÃO MÍNIMA INSTALAÇÃO INTERLIGAÇÃO DO SISTEMA ALGUNS RECURSOS SERVIDOR BAM...

GUIA INTEGRA SERVICES E STATUS MONITOR

UFG - Instituto de Informática

Resolução da lista de exercícios de casos de uso

GT-ATER: Aceleração do Transporte de Dados com o Emprego de Redes de Circuitos Dinâmicos. RP1 - Relatório de detalhamento das atividades

ESTUDO DE CASO WINDOWS VISTA

Introdução à Banco de Dados. Definição

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

Histórico da Revisão. Versão Descrição Autor. 1.0 Versão Inicial

Glossário Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart.

Gerência de Redes: Modelos de Gerência de Redes: Modelo FCAPS: Ferramentas de Gerência de Redes:

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert:

Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

Sistemas Distribuídos Arquitetura de Sistemas Distribuídos I. Prof. MSc. Hugo Souza

Orientação a Objetos

IW10. Rev.: 02. Especificações Técnicas

ADMINISTRAÇÃO DE SISTEMAS OPERACIONAIS COTAS DE DISCO. Professor Carlos Muniz

Introdução a Java. Hélder Nunes

ADMINISTRAÇÃO DE SISTEMAS OPERACIONAIS SERVIÇOS IMPRESSÃO. Professor Carlos Muniz

4 O Workflow e a Máquina de Regras

Manual do usuário. Softcall Java. versão 1.0.5

3. Explique o motivo pelo qual os protocolos UDP e TCP acrescentam a informação das portas (TSAP) de origem e de destino em seu cabeçalho.

Bem-vindo ao curso delta Gerenciamento de peso para a versão 9.1. Este curso aborda a nova solução de peso introduzida nessa versão.

Sistemas Distribuídos

Monitoramento de Sistemas P05.002

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES

Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo

Pós-Graduação em Gerenciamento de Projetos práticas do PMI

Minicurso Computação em Nuvem Prática: Openstack

SERVICE DESK MANAGER SDM. Manual do Sistema - DPOI

Guia do Demoiselle Audit Demoiselle Audit Paulo Gladson Ximenes Pinheiro Clóvis Lemes Ferreira Júnior

Visão geral híbrida de Serviços Corporativos de Conectividade do SharePoint 2013

Dell Infrastructure Consulting Services

Laboratório de Redes. Professora Marcela Santos

5 Mecanismo de seleção de componentes

CA Nimsoft Monitor Snap

FTP Protocolo de Transferência de Arquivos

Softwares Aplicativos Banco de Dados

Manual do usuário - Service Desk SDM - COPASA. Service Desk

Introdução a Banco de Dados Aula 03. Prof. Silvestri

ADDRESS RESOLUTION PROTOCOL. Thiago de Almeida Correia

3 SERVIÇOS IP. 3.1 Serviços IP e alguns aspectos de segurança

5 Estudo de caso: utilizando o sistema para requisição de material

HIBERNATE EM APLICAÇÃO JAVA WEB

Exemplos práticos do uso de RMI em sistemas distribuídos

PÉGASUS (ETHERNET POCKET) STUDIO V1.00 MANUAL DE INSTALAÇÃO E OPERAÇÃO

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia

Sumário. Apresentação O que é o Centro de Gerenciamento de Serviços (CGS) NTI? Terminologia Status do seu chamado Utilização do Portal Web

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

Transcrição:

3 SCS: Sistema de Componentes de Software O mecanismo para acompanhamento das chamadas remotas se baseia em informações coletadas durante a execução da aplicação. Para a coleta dessas informações é necessário realizar a instrumentação da aplicação. Neste trabalho utilizaremos a infra-estrutura de monitoramento dos componentes SCS [14] (Sistema de Componentes de Software) em razão de sua simplicidade e flexibilidade. Essa infra-estrutura facilita a instrumentação e pode ser facilmente adaptada às necessidades específicas da aplicação. 3.1 O modelo do componente SCS O modelo de componentes de software do SCS presa a separação entre a especificação de um serviço, representada pela sua interface, e a sua implementação. Essa separação permite definir as dependências de um serviço como uma coleção de interfaces. Dessa forma, um componente de software é um artefato de software com definições explícitas dos serviços que oferece e dos serviços das quais depende. Esse modelo é seguido por um componente SCS, que possui uma coleção de interfaces bem definidas que representam os serviços oferecidos, e outro conjunto de interfaces que representa as dependências que devem ser satisfeitas para que os serviços oferecidos possam ser utilizados. As interfaces do componente são chamadas de facetas e as dependências são representadas pelos receptáculos. Cada receptáculo de um componente poderá ser associado a uma faceta de outro componente em um processo denominado conexão, desde que a interface oferecida pela faceta seja compatível com interface esperada pelo receptáculo. Esse processo de conexão representa a dependência de um componente sendo suprida pelo serviço oferecido por outro componente. O sistema de componentes SCS utiliza o padrão CORBA para comunicação entre os componentes, de forma que cada componente possui uma coleção de facetas e uma coleção de receptáculos. Cada uma dessas facetas implementa um conjunto de métodos que podem ser invocados e cada um dos receptáculos pode ser conectado a uma faceta, de forma que os métodos im-

Capítulo 3. SCS: Sistema de Componentes de Software 20 plementados por esta possam ser utilizados. A figura 3.1 apresenta o esquema de um componente SCS. Figura 3.1: Modelo de componente SCS As aplicações distribuídas baseadas em componentes que usam o SCS podem fazer uso de uma infra-estrutura de execução [15] que conta com um mecanismo de monitoramento de execução, proposto por Fonseca [16]. Esse mecanismo permite a definição de um conjunto de métricas que serão coletadas durante a execução do sistema e disponibilizadas em um canal de eventos para que possam ser monitoradas ou analisadas por um consumidor conectado ao canal. 3.2 Infra-estrutura de execução A infra-estrutura de execução do SCS permite o carregamento, execução, suspensão e instrumentação dos componentes. Ela é composta pelos seguintes elementos principais: ExecutionNode e Container. O Container é um processo do sistema e executa um ou mais componentes SCS que compartilham um mesmo espaço de endereçamento. O ExecutionNode gerencia os Containers que executam em uma mesma máquina e pode criar e destruir Containers. Em uma aplicação distribuída, um ExecutionNode tipicamente está associado a uma máquina e representa um nó da rede. 3.3 Infra-estrutura de monitoramento O SCS conta com uma infra-estrutura de monitoramento que permite a coleta de dados a partir dos Containers que hospedam os componentes da aplicação. Os dados a serem coletados são descritos por meio de métricas.

Capítulo 3. SCS: Sistema de Componentes de Software 21 Algumas métricas, consideradas gerais o suficiente para serem úteis para uma grande parte das aplicações distribuídas, são oferecidas de antemão por essa infra-estrutura: Tempo total de utilização de CPU pelo Container desde que foi criado. Total de memória utilizada pelo Container. Tempo total de execução do Container. Tempo de resposta de uma operação invocada (medido no servidor). Tempo de propagação na rede da requisição para invocação de uma operação. Tempo de uso da CPU pelo processo que executou a operação invocada. O levantamento dessas métricas foi realizado por Fonseca [16] tendo como base uma criteriosa análise de alguns aspectos de sistemas distribuídos. No entanto, em alguns casos a análise de uma aplicação vai exigir a coleta de uma métrica específica, relacionada ao domínio da aplicação, e que não foi prevista pela infra-estrutura de monitoramento. Por exemplo, a análise de uma aplicação que manipula grandes volumes de dados armazenados em arquivos exigiria a coleta de dados que possam quantificar a utilização do disco. Para esses casos em que as métricas oferecidas não são suficientes, essa infra-estrutura apresenta a flexibilidade necessária para ser adaptada ao tipo de aplicação a ser instrumentada. Essa adaptação é feita pelo desenvolvedor através da definição de um conjunto de métricas consideradas relevantes para sua aplicação. Para que essas novas métricas possam ser coletadas junto daquelas já definidas, o programador deve associar cada nova métrica à um método de coleta de dados, e depois, plugá-la à infra-estrutura de monitoramento. É importante mencionar que tais métricas podem ser adicionadas e retiradas em tempo de execução. A coleta de algumas métricas, como o tempo de CPU do processo que executou uma operação invocada, é feita pela infra-estrutura de monitoramento através do uso dos interceptadores CORBA. Como o uso desses interceptadores também é necessário neste trabalho para a coleta dos dados necessários ao acompanhamento das sequências de interações entre os componentes, nós iremos estender os interceptadores da infraestrutura de monitoramento para incluir a coleta desses dados. Assim, vai ser possível fazer a associação de uma sequências de interações com algumas métricas, como por exemplo, o tempo de CPU utilizado por um método remoto.

Capítulo 3. SCS: Sistema de Componentes de Software 22 A instrumentação para o monitoramento de uma aplicação causa um inevitável impacto no desempenho dessa aplicação. Uma solução para minimizar esse problema seria colocar o componente responsável pelo tratamento dos dados coletados em um nó da rede não utilizado pelos componentes da aplicação. Para isso, a infraestrutura de monitoramento disponibiliza as métricas coletadas em um canal de eventos CORBA, para que possam ser obtidas por qualquer aplicação cliente conectada ao canal. Assim, qualquer processamento adicional não vai onerar os nós da rede em que rodam os componentes da aplicação. 3.3.1 Os interceptadores definidos por CORBA A arquitetura CORBA permite o registro de um objeto que pode atuar em conjunto com o ORB no fluxo que envolve a requisição e a resposta de uma chamada remota. Esse objeto é denominado de interceptador, podendo ser um interceptador cliente, que é chamado quando uma aplicação cliente CORBA realiza uma requisição de chamada remota, ou um interceptador servidor, quando uma aplicação servidora CORBA recebe uma requisição para invocação de método remoto. O ORB invoca operações do interceptador em quatro pontos de interceptação ao longo do caminho de invocação entre cliente e servidor, que podem ser vistos na figura 3.2. No lado do cliente são definidos dois pontos de interceptação: Um no momento em que o cliente envia uma requisição (SendRequest) e outro quando ele recebe a resposta de uma requisição feita (ReceiveReply). No lado servidor os pontos de interceptação são: ReceiveRequest, no momento na qual o servidor recebe a requisição e SendReply, quando o servidor processou a requisição e vai enviar uma resposta para o cliente. Figura 3.2: Pontos de interceptação Existem outros pontos de interceptação para o caso de ocorrência de uma exceção: SendException, quando o servidor vai enviar a exceção para o cliente e o ReceiveException quando o cliente recebe como resposta a exceção

Capítulo 3. SCS: Sistema de Componentes de Software 23 levantada. O objeto que implementa o interceptador possui métodos que o ORB vai invocar em cada ponto de interceptação. Em tempo de execução o interceptador pode examinar o estado da requisição e decidir que ações realizar com base nas informações associadas com a invocação, por exemplo, o nome da operação, parâmetros, lista de exceções, identificador da requisição e valores de retorno. O interceptador não pode modificar os parâmetros ou valores de retorno, mas pode inserir ou extrair dados de uma lista de contexto de serviço da requisição. O contexto de serviço é um campo do tipo sequence em uma mensagem GIOP, que pode transmitir informação adicional associada à requisição, tais como credenciais de autenticação, contexto de transações ou prioridade das operações. Cada entrada no contexto de serviço tem um único identificador que pode ser usado pelas aplicações e pelos componentes CORBA para extrair o contexto de serviço apropriado. A especificação de interceptadores do CORBA permite modificar o comportamento das aplicações sem mudanças no código e pode ser utilizada para desenvolvimento de aplicações adaptativas. Pode ser utilizada também para o monitoramento da utilização dos recursos pela aplicação, para a coleta de informações para depuração em tempo de execução e para o registro (log) de informações cuja necessidade só foi detectada após a implantação da aplicação. Uma vantagem é que não é necessário mudança no código da aplicação. Porém existe um impacto negativo no desempenho da aplicação, como mostrado por Baldoni e Marchetti [17], já que um código adicional será executado a cada invocação remota. Uma alternativa para superar as limitações quanto ao desempenho do uso de interceptadores é a utilização de proxies modificados para inclusão de código de instrumentação [17]. Dessa forma, seria possível filtrar os métodos que seriam interceptados, minimizando o impacto global no desempenho. No entanto, a ferramenta desenvolvida neste trabalho deve reconstruir a sequência de chamadas de todos os métodos da aplicação, sendo assim necessário a interceptação de todas as requisições remotas. Por isso a abordagem utilizando proxies seria mais trabalhosa, além de não ser tão vantajosa na questão do desempenho, já que seria necessário inserir código em todos os proxies da aplicação.