Middleware e Sistemas Distribuídos

Slides:



Advertisements
Apresentações semelhantes
Sistemas Distribuídos
Advertisements

Sistemas Distribuídos Baseados em Objetos
Sistemas distribuídos Metas de Projeto Prof. Diovani Milhorim
Sistemas Distribuídos
Sistemas Distribuídos:Definições e Caracteristicas
Sistemas Distribuídos
Sistemas Distribuídos
RMI-IIOP.
Sistemas Distribuídos
CORBA Um Padrão Industrial para Objetos Distribuídos
Comunicação Distribuída
Web Services Erika Hmeljevski Estefania Borm Leonardo Malagoli
Desenvolvimento de Aplicações Distribuídas
Sistemas Distribuídos Walfredo Cirne & Fubica Brasileiro Aula 3:Conceitos Básicos As figuras que.
Sistemas Distribuídos
Sistemas Distribuídos CORBA
1 Comunicação Inter-Processos -> RMI -> RPC -> TCP -> UDP (Abstração de passagem de mensagem)
1 Arquitetura CORBA Repositório de Implementação Repositório de Interface cliente programa cliente proxy ORB Core ou invocação dinâmica servidor ORB Core.
Comunicação Entre Objetos Distribuídos
1 Sistemas Distribuídos - SDI Caracterização de Sistemas Distribuídos. Introdução. Exemplos de Sistemas Distribuídos. Desafios.
Comunicação Inter-Processos
Objetos Distribuídos Padrão CORBA
Objetos Distribuídos para WEB Prof. Paulo Fernando da Silva FURB – Universidade Regional de Blumenau Pós-Graduação em Desenvolvimento WEB.
Sistemas Distribuídos
1 Modelos de Sistemas Distribuídos. Introdução - Dificuldades e ameaças para SD. Grande variação na utilização de SD )carga de trabalho e requerimentos.
Arquitetura CORBA e Objetos Distribuídos
Sistemas Distribuídos
Tópicos de Sistemas de Informação A
Web Services Uninorte Semana de Tecnologia da Informação
CORBA e Desenvolvimento Baseado em Componentes
Marcela Bezerra da Silva Cin - UFPE
Sistemas Distribuídos
Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 07.
Concorrência e Java RMI
Protocolos de Recuperação
Administração e Integração de Redes em Sistemas Distribuídos
Sistemas Distribuídos
Sistemas Distribuídos Introdução. Conceito Coleção de múltiplos processos que executam sobre uma coleção de processadores autônomos interligados em uma.
Sistemas Distribuídos
Tecgraf PUC-Rio maio de 2011 Principais conceitos de CORBA.
TMV Gestão de Redes e de Sistemas Distribuídos ???? Sumário  Arquitectura de Gestão SNMP  Arquitectura de Gestão OSI/TMN  Novas Arquitecturas.
CORBA Commom Object Request Broker Architecture Conhecendo o Padrão da OMG 3º Engenharia da Computação Vitor C. Tamarozi Romeu L. Furlan Júnior Prof. Edson.
CORBA Apresentação do Padrão CORBA Maurício Maron Mendes Ramiro Pereira de Magalhães
Tecgraf PUC-Rio Setembro de 2013 Introdução ao Openbus.
Integrações de Aplicações Empresariais Prof. Paulo Fernando da Silva UNC – Universidade do Contestado Pós-Graduação em Sistemas de Informação Aplicados.
Java RMI João Gabriel (jggxm).
Técnicas de Replicação
RPC and Web Service André Pereira.
Sistemas Distribuídos
Conceitos da arquitetura
Comunicação.
Introdução a JEE Marco A. S. Reis Arquiteto de Software Abril/2011.
Sistemas Distribuídos
Integração de Ferramentas CASE
Desenvolvimento de Aplicações para WEB Para inserir o logotipo da empresa neste slide No menu 'Inserir' Selecione 'Figura' Localize o arquivo com o logotipo.
Sistemas Distribuídos
Infra-Estrutura para Computação Distribuída
Situação Atual Grandes Organizações - Governos Grande número de Sistemas de Compras ( Automatizados ou Manuais) Num mesmo setor Para um mesmo fornecedor.
FORMI Integrating Adaptive Fragments Objects into Java RMI Kapitza, Rüdiger; Domaschka, Jörg; Hauck, Franz J.; Reiser, Hans P. ;Schmidt, Holger. IEEE Distributed.
Computação Distribuída João Bosco Mangueira Sobral CORBA Common Object Request Broker.
Sistemas Operacionais Distribuídos
Tecgraf PUC-Rio maio de 2011 Introdução ao Openbus.
Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Principais conceitos de CORBA.
Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Introdução ao OpenBus.
Redes e Sistemas Distribuídos II – Cód Prof. MSc. Ronnison Reges Vidal.
Leandro Clementino Almeida.  Anos 50 - Sistemas Operacionais tipo Lote:  Aumentar a capacidade de processamento de programas  Usuário ia ao computador.
Banco de Dados Distribuídos Sílvia Cristina de Matos Soares
SOA SOA – Arquitetura Orientada a Serviços Conceitos e Aplicações
Aula Prática de Corba ® Aula de Monitoria: Bruno Pereira - bpe Davi Pires - dpr Guilherme Barros – gbs2 Thiago Cavalcanti - trc.
UNIFACS – Universidade Salvador Prof. Arquitetura Cliente/Servidor Parte V Middleware Eduardo Xavier.
Transcrição da apresentação:

Middleware e Sistemas Distribuídos

Roteiro Sistemas Distribuídos Middleware Tipos de Middleware Principais Middlewares Estudo de Caso Conclusões

Sistemas Distribuídos Sistemas Distribuídos são... Vantagens Disponibilidade Escalabilidade Tolerância a falhas Custo benefício Desvantagens Mais fontes de falhas Complexidade Heterogeneidade Segurança “Com o desenvolvimento de redes mais rápidas, confiáveis e baratas e o valor cada vez mais baixo dos micro-computadores, o uso de vários computadores de pequeno poder computacional funcionando cooperativamente no lugar de um mainframe se tornou uma alternativa economicamente mais viável. Foi nesse contexto que se começou a pensar em sistemas distribuídos.” Sistemas distribuídos são..: “Um sistema distribuído é um sistema de processamento de informações composto por vários computadores independentes que cooperam uns com os outros sobre uma camada de comunicação, a fim de conseguir um determinado objetivo” Nas vantagens, explicar porque cada uma dessas características são conseguidas Disponibilidade - Vários computadores podem atender a mais requisições Escalabilidade - Como o sistema é feito para trabalhar com várias máquinas, adicionar mais máquinas (se necessário) não é uma tarefa difícil. Tolerância a Falhas - É conseguido com o uso de redundância dos componentes Custo Benefício – O alto custo dos mainframes dificultava o desenvolvimento de sistemas que necessitassem de mais processamento. Nas desvantagens, Falar: Fontes de Falhas: Mais computadores significa mais fontes de falhas Complexidade: Já que o sistema não é centralizado, há mais complexidade no funcionamento do sistema (EX: troca de mensagens pode ocasionar erro) Heterogeneidade: Computadores diferentes podem ter arquiteturas diferentes, programas escritos em linguagens diferentes (vamos falar mais a respeito). Segurança: Como as mensagens são trocadas através da rede e a rede é intrinsecamente insegura, o sistema se torna inseguro também.

Sistemas Distribuídos Transparência Local Acesso Falha Tecnologia Concorrência “Existe um conceito muito importante em sistemas distribuídos, que é o conceito de transparência.” Local: Os componentes devem ser acessados sem que se saiba da localização física deles Acesso: Os componentes devem ser acessados remotamente da mesma forma que seriam localmente Falha: Usuários não devem se preocupar ou tomar conhecimento da falha de um componente Tecnologia: O usuário não deve se preocupar com que linguagem ou sistema operacional o sistema vai funcionar Concorrência: O usuário não deve saber que está compartilhando os componentes com outros usuários. Falar que se os desenvolvedores de sist. Dist. fossem se preocupar com todos os detalhes citados anteriormente, o desenvolvimento desses sistemas seria inviável. E que foi pensando nesse problema que surgiu a idéia de middleware.

Middleware “Um middleware pode ser visto como uma camada de software intermediária localizada entre o sistema operacional e a aplicação.” Desenvolvimento de Sistemas distribuídos mais fácil e ágil. “O middleware possibilita a interação e comunicação entre diferentes aplicações através de suas APIs.” “Então podemos ver um middleware como um ambiente de desenvolvimento e execução que permite a conexão de componentes localizados em diferentes locais, escritos em diferentes linguagens e executando sobre Sistemas Operacionais diversos. “Dessa forma, um middleware permite que os desenvolvedores abstraiam detalhes de transparência, concorrências, controle de transações e comunicação permitindo que eles se concentrem na aplicação em si. ” Dizer que como os desenvolvedores não se preocupam com detalhes concorrência, controle de transações e comunicação, eles podem se concentrar com os detalhes da aplicação.

Middleware Requisitos de um Middleware Permitir Comunicação Uso de protocolos de comunicação Marshalling e Unmarshalling IDL para garantir (un)marshalling dos dados Comunicação: “Já que os componentes de um sistema distribuído usam a rede para se comunicar, é necessário que o middleware lide com os detalhes de comunicação.” Uso de protocolos de comunicação: Quando um componente quer enviar uma mensagem a outro componente, ele deve utilizar o protocolo de comunicação. Marshalling e Unmarshalling: “São utilizados para codificar os dados em bytes de um lado e decodificar os bytes em dados novamente do outro lado. “ IDL para garantir ...: “todos os dados devem ser descritos utilizando IDL”

Middleware Requisitos de um Middleware Confiança na execução de requisições Melhor esforço Sem garantias Pelo menos uma Potencialmente mais de uma No máximo uma Só uma vez Confiança na execução de requisições: “Existem vários níveis de confiança na literatura algumas delas são...” Melhor Esforço: “Não existe nenhuma garantia que o request será executado.” Pelo menos uma: “É garantido que o pedido será executado, possivelmente mais de uma vez.” No máximo uma: “É garantido que o request será executado só uma vez, porém pode ocorrer uma falha que impossibilite está execução, quando isso acontecer o solicitador será avisado da falha.”

Middleware Requisitos de um Middleware Permitir Escalabilidade Medida de Capacidade de adaptação Replicação de componentes como solução Transparência de acesso Transparência de localização Transparência de migração Transparência de replicação Escalabilidade: “A escalabilidade define uma medida de quão bem o sistema pode se adaptar a um aumento na demanda de requisições.“ Replicação de componentes: “Quando um componente do sistema está sobrecarregado de requisições, o middleware pode fazer cópias daquele componente em outras máquinas para aumentar a quantidade de requisições atendidas por unidade de tempo. Para implementar este comportamento adaptativo, o middleware deve ter transparências de...” Acesso, localização, migração e replicação. “Ou seja, toda a tarefa de adaptação ao ambiente deve ficar a cargo do middleware, não do programador da aplicação.”

Middleware Requisitos de um Middleware Lidar com Heterogeneidade Não restringe o sistema a uma só tecnologia Permite que componentes legados sejam integrados a novos componentes. “Lidar com a heterogeneidade dos sistemas é um requisito importante para um middleware

Middleware Serviços de Middleware Ciclo de vida Serviço de nomes Gerenciamento do Ciclo de vida dos objetos Serviço de nomes Permite referenciar objetos pelo nome Relacionamento Cria associações dinamicamente entre objetos Transação Faz gerenciamento de transações Olhar http://www.mundooo.com.br/php/modules.php?name=MOOArtigos&pa=showpage&pid=17#2.4.17

Middleware Serviços de Middleware Negócio Segurança Tempo Evento Permite localização de serviços Segurança Oferece funcionalidades de segurança Tempo Serviço de sincronização de relógios Evento Registra interesse de componentes por eventos

Tipos de Middleware Middleware Transacional Suporte a transações síncronas Coordena requisições entre clientes e servidores Pode suportar as propriedades ACID Middleware Transacional: É utilizado quando transações precisam ser coordenadas e sincronizadas sobre diferentes bancos de dados.

Tipos de Middleware Middleware Transacional Vantagens Componentes se mantêm consistentes Bastante confiável Boa performance Escalonamento e priorização de solicitações Componentes de mantêm consistentes: “Quando as propriedades ACID são garantidas, há a garantia de consistências” Bastante Confiável: “Têm confiabilidade como um requisito natural para o funcionamento com sistemas comerciais” “Boa performance: “ Escalonamento e priorização de requisições: “É uma característica importante sistemas ....”

Tipos de Middleware Middleware Transacional Desvantagens Ausência de padronização para descrever serviços Executa numa menor quantidade de plataformas Bloqueios desnecessários Marshalling e unmarshalling implementadas manualmente ausência de padronização: A ausência de um padrão comum na descrição dos serviços prestados pelos componentes prejudica a compatibilidade de um sistema entre diferentes middlewares transacionais. Roda numa menor quantidade de plataformas: Geralmente os middlewares transacionais funcionam apenas em ambientes Linux e NT server. Já outros middlewares funcionam sobre um número bem maior de plataformas. Bloqueios desnecessários: ”As vezes, para garantir as propriedades ACID, uma transação bloqueia outra desnecessariamente”

Tipos de Middleware

Tipos de Middleware Middleware Orientado a Mensagens (MOM) Message queuing Comunicação indireta Assincrona Mensagens enviada para filas Message Passing Comunicação direta Síncrona Destaque para o modelo publish-subscribe Middleware Orientado a Mensagens: “São middlewares que permitem a comunicação através da passagem de mensagens. As mensagens podem ser enviadas de duas formas. Direta ou indiretamente.” Message queuing: “É o modelo de passagem indireta de mensagens. O sender envia a mensagem para um fila e o receiver em algum momento vai nesta fila e verifica se alguma mensagem chegou na fila. Geralmente, o receiver remove a mensagem que recebeu.” Message Passing: “É um modelo de passagem direta de mensagens. Ou seja, as mensagens são enviadas para um tópico e todas as aplicações inscritas naquele tópico recebem esta mensagem automaticamente. Este modelo se parece com o newsgroup.”

Tipos de Middleware Middleware Orientado a Mensagens (MOM) Vantagens Suporta comunicação em grupo de forma atômica Confiabilidade Amplo suporte a protocolos de rede Suporta cominicação em grupo: “A comunicação garante que ou todos recebem a mensagem ou nenhum recebe.” Confiabilidade: “Quando há o suporte a filas persistentes, há um aumento da confiança de que todos receberão as mensagens.” Amplo suporte a protocolos de rede: “Os middlewares orientados a mensagens suportam mais protocolos de rede que RPC.”

Tipos de Middleware Middleware Orientado a Mensagens (MOM) Desvantagens Escalabilidade e heterogeneidade limitadas Pouca portabilidade por falta de padronização Uso Aplicações cuja disponibilidade da rede ou de todos os componentes não seja um problema Escalabilidade e heterogeneidade limitadas: “O middlewares orientados a mensagens são mais limitados quanto a escalabilidade e heterogeneidade” Pouca portabilidade: “MOM não adotam nenhum padrão, por isso, têm problema de portabilidade. Ou seja, aplicações feitas para um MOM não são compatíveis com outro MOM.” Aplicações cuja...: “Atualmente, este tipo de middleware é muito utilizado na comunicação entre sistemas de empresas diferentes. Um dos sistemas manda um mensagem para a outra e não se preocupa se esta mensagem vai chegar ou ser respondida.”

Tipos de Middleware

Tipos de Middleware Middleware Orientado a Objetos (MOO) Evolução dos middlewares procedurais Interação por invocação de métodos Comunicação tipicamente síncrona IDLs para descrever serviços Middleware Orientado a Objetos: “O middlewares orientados a mensagens são uma evolução de outro tipo de middleware. Os Middlewares procedurais. Os MOO estendem os middlewares procedurais adicionando o conceitos de herança, referência a objetos e exceções.” Interação por invocação de métodos: “A interação entre os objetos remotos se dá através da invocação de métodos. Essas invocações são feitas da mesma forma que são feitas para objetos locais.” Comunicação tipicamente síncrona: “A comunicação é síncrona. Dessa forma, um objeto fica parado esperando pela resposta do objeto invocado.” IDLs para descrever serviços: “Utilizar IDL para descrever os métodos de um objeto é muito importante para esconder do programador da aplicação a linguagem de programação que foi utilizada para implementar o método. Se não fosse assim, o programador teria que saber qual foi a linguagem de programação utilizada na implementação dos métodos.”

Tipos de Middleware Middleware Orientado a Objetos (MOO) Vantagens Grande suporte a heterogeneidade Marshalling e unmarshalling automáticos Versatilidade Grande suporte a heterogeneidade: “Os middlewares orientados a objetos têm a forte característica de permitir a invocação de métodos entre objetos escritos em linguagens diferentes.” Marshalling e unmarshalling automáticos: “O marshalling e unmarshalling são feitos automaticamente na camada de apresentação do middleware.” Versatilidade: “Os middlewares orientados a objetos são bastante versáteis porque podem substituir middlewares orientados a mensagens e transacionais “

Tipos de Middleware Middleware Orientado a Objetos (MOO) Desvantagens Pouca Escalabilidade Uso Aplicações que não precisam de grande escalabilidade Pouca Escalabilidade: “Os MOOs não são muito escaláveis” Uso: “Pelo fato de não serem muito escaláveis, apenas aplicações que não precisem de grande escalabilidade, devem utilizar este tipo de middleware.”

Tipos de Middleware

Principais Middlewares Transacionais Tuxedo (BEA) CICS (IBM) Encina (Transarc) MOM MQSeries (IBM) JMS (Sun) MOO CORBA (OMG) COM (Microsoft) RMI

Estudo de Caso - CORBA Especificado pela OMG Especialização do Object Management Architecture (OMA) Transforma modelos abstratos de objetos em formas concretas “Agora vamos fazer um estudo mais aprofundado sobre um dos middlewares mais utilizados. O CORBA.” Especificado pela OMG: “O CORBA foi especificado pela OMG (Object Management Group)” Especialização do OMA: “CORBA é uma especialização de um modelo chamado de Object Management Architecture (OMA). Esta arquitetura tem como ferramentas um modelo abstrato de objeto e de referência.” Transforma modelos abstratos..: “A diferença do modelos de objetos de CORBA para o OMA é que CORBA torna os modelos abstratos de OMA em formas concretas.”

CORBA - IDL Interface Definition Language (IDL) Linguagem declarativa Define interfaces de objetos com independência de linguagem Separa a interface da implementação de um objeto Permite a herança de interfaces Interface Definition Languagem (IDL): “Bem, aqui iremos falar um pouco sobre o modelo de objetos de CORBA e a linguagem utilizada nessa descrição.” Linguagem declarativa: “É uma linguagem declarativa.” Define interfaces de objetos: “IDL é utilizada para definir interfaces de objetos independente de linguagem de programação.” Separa a interface da implementação de um objeto: “Permite a separação entra a interface e a implementação de um objeto” Permite a herança de interfaces: “A capacidade de herança de interfaces é um recurso muito interessante da IDL. Ela permite o reuso de interfaces sem que suas implementações sejam herdadas. A maioria das linguagem de programação só permite a herança de implementação.”

CORBA – IDL Language Mappings Gera o Stub e Skeleton Mapeia tipos da IDL para tipo da linguagem alvo Language Mapping é extremamente dependente das linguagens de programação utilizadas. Gera o Stub e Skeleton: “Após a definição dos objetos terem sido feitas, ocorre a geração do Stub e do Skeleton. O Skeleton é gerado na linguagem em que o objeto é implementado e o Stub é gerado utilizando a linguagem de programação que o cliente está utilizando.” Mapeia tipos da IDL para tipo da linguagem alvo: “Os tipos da linguagem IDL também são mapeados para os tipos correspondentes da linguagem alvo.”

CORBA - ORB Object Request Broker É o componente mais importante de CORBA Transmite invocação de operações do cliente para o servidor Trata de todas as tarefas associadas à invocação de um método Transmite invocação de operações do cliente para o servidor : “A responsabilidade chave do ORB é transmitir as invocações de métodos do cliente para a implementação do objeto.“ Trata de todas as tarefas associadas à invocação de um método: “Quando ocorre a invocação de um método, também é responsabilidade do ORB lidar com todas as tarefas associadas a esta invocação.”

CORBA - ORB Object Request Broker Lida com todas as heterogeneidades do ambiente Localidade Linguagem de programação Sistema operacional Hardware Meios de comunicação Lida com todas as heterogeneidades do ambiente: “Um das tarefas associadas à invocação de um método em CORBA é lidar com as heterogeneidades do ambiente. É de responsabilidade do ORB dar transparência de localidade, Tecnologia, Sistema operacional, hardware e meios de comunicação.”

CORBA - Adaptadores Adaptadores de Invocação Adaptadores de Objetos Usados indiretamente pelo cliente Separados do ORB Adaptadores de Objetos Fornece um ambiente para instanciar objetos e passar requisições (ciclo de vida) Também separados do ORB Adaptadores de Invocação: “Os adaptadores de invocação são utilizados para transferir invocações de métodos ao ORB no cliente.” Usados indiretamente pelo cliente: “Os adaptadores de invocação são utilizados indiretamente pelos clientes através do Stub” Separados do ORB: “Os adaptadores do invocação são separados do ORB porque as funcionalidade necessárias para a invocação de um método podem variar consideravelmente.” Adaptadores de Objetos: “Os adaptadores de Objetos fazem a conexão entre o ORB e a implementação de um objeto.” Fornece um ambiente...: “Eles são responsáveis por gerenciar o ciclo de vida dos objetos. Eles fornecem o ambiente necessário para instanciar objetos, passar requisições a eles e destruí-los.” Também são separados do ORB: “Também são separados do ORB porque implementações de objetos diferentes requerem tarefas diferentes do adaptador.”

Conclusões Middlewares objetivam resolver a maioria das complexidades inseridas pelo uso de vários computadores Criam um ambiente de desenvolvimento de aplicações distribuídas de mais alto nível Permitem reuso de componentes

Dúvidas ?