Comunicação Distribuída – Middleware
             Prof. Adriano Teixeira de Souza
   “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.



                          Prof. Adriano Teixeira de Souza
Prof. Adriano Teixeira de Souza
Requisitos de um Middleware
   Permitir Comunicação
    ◦ Uso de protocolos de comunicação
    ◦ Marshalling e Unmarshalling
    ◦ IDL para garantir (un)marshalling dos dados




                            Prof. Adriano Teixeira de Souza
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


                              Prof. Adriano Teixeira de Souza
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.




                            Prof. Adriano Teixeira de Souza
   Serviços de Middleware
    ◦ Ciclo de vida
      Gerenciamento do Ciclo de vida dos objetos

    ◦ Serviço de nomes
      Permite referenciar objetos pelo nome

    ◦ Transação
      Faz gerenciamento de transações




                              Prof. Adriano Teixeira de Souza
   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




                               Prof. Adriano Teixeira de Souza
   Middleware Transacional
    ◦ Suporte a transações síncronas
    ◦ Coordena requisições entre clientes e servidores
    ◦ Pode suportar as propriedades ACID (Atomicidade,
     Consistência, Isolamento e Durabilidade)




                             Prof. Adriano Teixeira de Souza
Middleware Transacional
   Vantagens
    ◦ Componentes se mantêm consistentes
    ◦ Bastante confiável
    ◦ Boa performance
    ◦ Escalonamento e priorização de solicitações




                             Prof. Adriano Teixeira de Souza
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



                            Prof. Adriano Teixeira de Souza
   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



                                Prof. Adriano Teixeira de Souza
Middleware Orientado a Mensagens (MOM)
   Vantagens
    ◦ Suporta comunicação em grupo de forma atômica
    ◦ Confiabilidade
    ◦ Amplo suporte a protocolos de rede




                            Prof. Adriano Teixeira de Souza
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




                             Prof. Adriano Teixeira de Souza
Prof. Adriano Teixeira de Souza
   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




                             Prof. Adriano Teixeira de Souza
Middleware Orientado a Objetos (MOO)
   Vantagens
    ◦ Grande suporte a heterogeneidade
    ◦ Marshalling e unmarshalling automáticos
    ◦ Versatilidade




                            Prof. Adriano Teixeira de Souza
Middleware Orientado a Objetos (MOO)
   Desvantagens
    ◦ Pouca Escalabilidade

   Uso
    ◦ Aplicações que não precisam de grande
     escalabilidade




                             Prof. Adriano Teixeira de Souza
Prof. Adriano Teixeira de Souza
   Transacionais
    ◦ Tuxedo (BEA)
    ◦ CICS (IBM)
   MOM
    ◦ MQSeries (IBM)
    ◦ JMS (Sun)
    ◦ HornetQ (Jboss)
   MOO
    ◦ CORBA - Common Object Request Broker Architecture (OMG)
    ◦ DCOM - Distributed Component Object Model (Microsoft)
    ◦ RMI - Remote Method Invocation (Java)




                              Prof. Adriano Teixeira de Souza

Sistemas Distribuídos - Comunicação Distribuída – Middleware

  • 1.
    Comunicação Distribuída –Middleware Prof. Adriano Teixeira de Souza
  • 2.
    “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. Prof. Adriano Teixeira de Souza
  • 3.
  • 4.
    Requisitos de umMiddleware  Permitir Comunicação ◦ Uso de protocolos de comunicação ◦ Marshalling e Unmarshalling ◦ IDL para garantir (un)marshalling dos dados Prof. Adriano Teixeira de Souza
  • 5.
    Requisitos de umMiddleware  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 Prof. Adriano Teixeira de Souza
  • 6.
    Requisitos de umMiddleware  Lidar com Heterogeneidade ◦ Não restringe o sistema a uma só tecnologia ◦ Permite que componentes legados sejam integrados a novos componentes. Prof. Adriano Teixeira de Souza
  • 7.
    Serviços de Middleware ◦ Ciclo de vida  Gerenciamento do Ciclo de vida dos objetos ◦ Serviço de nomes  Permite referenciar objetos pelo nome ◦ Transação  Faz gerenciamento de transações Prof. Adriano Teixeira de Souza
  • 8.
    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 Prof. Adriano Teixeira de Souza
  • 9.
    Middleware Transacional ◦ Suporte a transações síncronas ◦ Coordena requisições entre clientes e servidores ◦ Pode suportar as propriedades ACID (Atomicidade, Consistência, Isolamento e Durabilidade) Prof. Adriano Teixeira de Souza
  • 10.
    Middleware Transacional  Vantagens ◦ Componentes se mantêm consistentes ◦ Bastante confiável ◦ Boa performance ◦ Escalonamento e priorização de solicitações Prof. Adriano Teixeira de Souza
  • 11.
    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 Prof. Adriano Teixeira de Souza
  • 12.
    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 Prof. Adriano Teixeira de Souza
  • 13.
    Middleware Orientado aMensagens (MOM)  Vantagens ◦ Suporta comunicação em grupo de forma atômica ◦ Confiabilidade ◦ Amplo suporte a protocolos de rede Prof. Adriano Teixeira de Souza
  • 14.
    Middleware Orientado aMensagens (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 Prof. Adriano Teixeira de Souza
  • 15.
  • 16.
    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 Prof. Adriano Teixeira de Souza
  • 17.
    Middleware Orientado aObjetos (MOO)  Vantagens ◦ Grande suporte a heterogeneidade ◦ Marshalling e unmarshalling automáticos ◦ Versatilidade Prof. Adriano Teixeira de Souza
  • 18.
    Middleware Orientado aObjetos (MOO)  Desvantagens ◦ Pouca Escalabilidade  Uso ◦ Aplicações que não precisam de grande escalabilidade Prof. Adriano Teixeira de Souza
  • 19.
  • 20.
    Transacionais ◦ Tuxedo (BEA) ◦ CICS (IBM)  MOM ◦ MQSeries (IBM) ◦ JMS (Sun) ◦ HornetQ (Jboss)  MOO ◦ CORBA - Common Object Request Broker Architecture (OMG) ◦ DCOM - Distributed Component Object Model (Microsoft) ◦ RMI - Remote Method Invocation (Java) Prof. Adriano Teixeira de Souza