UNIVERSIDADE FEDERAL DE PERNAMBUCO cin.ufpe.br MultiMachine Middleware M M M M M M M M M M M Tarcisio Coutinho
UNIVERSIDADE FEDERAL DE PERNAMBUCO cin.ufpe.brObjetivo Facilitar o desenvolvimento de sistemas de Computação Voluntária através da implementação de um middleware Construir um middleware orientado a objetos Facilidade na “incorporação” de novos serviços
UNIVERSIDADE FEDERAL DE PERNAMBUCO cin.ufpe.brCenário
UNIVERSIDADE FEDERAL DE PERNAMBUCO cin.ufpe.brRequisitos Requisitos Funcionais [RF01] Serviço de nomes. [RF02] Serviço de criptografia. [RF03] Serviço de distribuição de carga
UNIVERSIDADE FEDERAL DE PERNAMBUCO cin.ufpe.brRequisitos Requisitos Não Funcionais [RNF01] Comunicação segura. [RNF02] Linguagem adotada na construção da aplicação: Java [RNF03] Transporte confiável TCP [RNF04] Comunicação Síncrona [RNF05] Comunicação 1-N
UNIVERSIDADE FEDERAL DE PERNAMBUCO cin.ufpe.brArquitetura
UNIVERSIDADE FEDERAL DE PERNAMBUCO cin.ufpe.brProjeto Padrões de Projeto Adotados Transparência de acesso Client Proxy Acesso a objetos remotos Requestor Invocação de objeto remoto Invoker Serialização Marshaller
UNIVERSIDADE FEDERAL DE PERNAMBUCO cin.ufpe.brProjeto Padrões de Projeto Adotados Gestor de conexões (Client Side) Client Request Handler Gestor de conexões (Server Side) Server Request Handler Gerenciamento de Ciclo de Vida Per-Request Instance
UNIVERSIDADE FEDERAL DE PERNAMBUCO cin.ufpe.brProjeto Client
UNIVERSIDADE FEDERAL DE PERNAMBUCO cin.ufpe.brProjeto Client Side
UNIVERSIDADE FEDERAL DE PERNAMBUCO cin.ufpe.brProjeto Server
UNIVERSIDADE FEDERAL DE PERNAMBUCO cin.ufpe.brProjeto Server Side
UNIVERSIDADE FEDERAL DE PERNAMBUCO cin.ufpe.brProjeto
UNIVERSIDADE FEDERAL DE PERNAMBUCO cin.ufpe.brImplementação Necessidade de Performance Implementação não genérica de mensagens Serialização “na unha” de array 159ms para serializar enviar (localmente) e “deserializar” 1Mbyte de dados
UNIVERSIDADE FEDERAL DE PERNAMBUCO cin.ufpe.brImplementação Como escolher os host’s Implementação de uma expressão para calcular o “Machine Rank” Escolha da carga de dados a serem enviados Cálculo leva em conta vários fatores importantes ao desempenho de processamento (cada qual com um peso associado) Quantidade de processadores (multi-cores, single-cores) Quantidade total de memória RAM Quantidade de memória Livre Número de Processos “Rodando” na máquina
UNIVERSIDADE FEDERAL DE PERNAMBUCO cin.ufpe.brAvaliação Ordenação
UNIVERSIDADE FEDERAL DE PERNAMBUCO cin.ufpe.brConclusão Pontos Fortes Adiciona novas propriedades ao middleware orientado a objetos Distribuição de carga Implementação seguindo padrões de projeto Regularidade Simplicidade de entendimento do código
UNIVERSIDADE FEDERAL DE PERNAMBUCO cin.ufpe.brConclusão Pontos Fracos Dificuldade de distribuir a carga Problema característico do próprio paralelismo Conflitos de dados, etc Atualmente necessidade de carregar configuração manualmente Futuramente uso de arquivo XML Motivo: Tempo
UNIVERSIDADE FEDERAL DE PERNAMBUCO cin.ufpe.br MultiMachine Middleware M M M M M M M M M M M M M M M M M M