A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Middleware e Sistemas Distribuídos

Apresentações semelhantes


Apresentação em tema: "Middleware e Sistemas Distribuídos"— Transcrição da apresentação:

1 Middleware e Sistemas Distribuídos

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

3 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.

4 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.

5 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.

6 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”

7 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.”

8 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.”

9 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

10 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

11 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

12 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.

13 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 ....”

14 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”

15 Tipos de Middleware

16 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.”

17 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.”

18 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.”

19 Tipos de Middleware

20 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.”

21 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 “

22 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.”

23 Tipos de Middleware

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

25 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.”

26

27 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.”

28 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.”

29 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.”

30 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.”

31 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.”

32 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

33 Dúvidas ?


Carregar ppt "Middleware e Sistemas Distribuídos"

Apresentações semelhantes


Anúncios Google