Buscar

Seminário_de_redes_e_sistemas_distribuídos

Prévia do material em texto

Middleware e Sistemas Distribuídos
Sistemas Distribuídos
Middleware
Tipos de Middleware
Principais Middlewares
Estudo de Caso
Conclusões
Roteiro
2
Sistemas Distribuídos são...
Vantagens
Disponibilidade
Escalabilidade
Tolerância a falhas
Custo benefício
Desvantagens
Mais fontes de falhas
Complexidade
Heterogeneidade
Segurança
Sistemas Distribuídos
“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. 
3
Transparência
Local
Acesso 
Falha
Tecnologia
Concorrência
Sistemas Distribuídos
“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.
4
“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.
Middleware
“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.
5
Requisitos de um Middleware
Permitir Comunicação
Uso de protocolos de comunicação
Marshalling e Unmarshalling
IDL para garantir (un)marshalling dos dados
Middleware
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” 
6
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
Middleware
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.”
7
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
Middleware
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.”
8
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.
Middleware
“Lidar com a heterogeneidade dos sistemas é um requisito importante para um middleware
9
Serviços de Middleware
Ciclo de vida
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
Middleware
Olhar http://www.mundooo.com.br/php/modules.php?name=MOOArtigos&pa=showpage&pid=17#2.4.17
10
Serviços de Middleware
Negócio
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
Middleware
Middleware Transacional
Suporte a transações síncronas
Coordena requisições entre clientes e servidores
Pode suportar as propriedades ACID
Tipos de Middleware
Middleware Transacional: É utilizado quando transações precisam ser coordenadas e sincronizadas sobre diferentes bancos de dados.
12
Middleware Transacional
Vantagens
Componentes se mantêm consistentes
Bastante confiável
Boa performance
Escalonamento e priorização de solicitações
Tipos de Middleware
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 ....”
13
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
Tipos de Middleware
ausência de padronização: A ausência de um padrãocomum 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” 
14
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
Tipos de Middleware
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.”
16
Middleware Orientado a Mensagens (MOM)
Vantagens
Suporta comunicação em grupo de forma atômica
Confiabilidade
Amplo suporte a protocolos de rede
Tipos de Middleware
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.”
17
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 
Tipos de Middleware
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.”
18
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
Tipos de Middleware
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.”
20
Middleware Orientado a Objetos (MOO)
Vantagens
Grande suporte a heterogeneidade
Marshalling e unmarshalling automáticos
Versatilidade
 
Tipos de Middleware
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 “
21
Middleware Orientado a Objetos (MOO)
Desvantagens
Pouca Escalabilidade
Uso
Aplicações que não precisam de grande escalabilidade
Tipos de Middleware
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.”
22
Tipos de Middleware
Transacionais	
Tuxedo (BEA)
CICS (IBM)
Encina (Transarc)
MOM
MQSeries (IBM)
JMS (Sun)
MOO
CORBA (OMG)
COM (Microsoft)
RMI
Principais Middlewares
24
Especificado pela OMG
Especialização do Object Management Architecture (OMA)
Transforma modelos abstratos de objetos em formas concretas
Estudo de Caso - CORBA
“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.”
25
26
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
CORBA - IDL 
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.”
27
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.
CORBA – IDL
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.”
28
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
CORBA - ORB
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.” 
29
Object Request Broker
Lida com todas as heterogeneidadesdo ambiente
Localidade
Linguagem de programação
Sistema operacional
Hardware
Meios de comunicação
CORBA - ORB
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.”
30
Adaptadores de Invocação
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
CORBA - Adaptadores
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.”
 
31
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 
Conclusões
Dúvidas
?
33

Continue navegando