UNIVERSIDADE SÃO TOMÁS DE MOÇAMBIQUE
FACULDADE DE CIÊNCIAS E TECNOLOGIAS DE
INFORMAÇÃO
MIDDLEWARE EM SISTEMAS
DISTRIBUIDOS
Tópicos
• Visão geral
Modelos de Arquitectura de Sistemas Distribuídos – MASD
Camadas de softwares
Plataforma
Middleware
Requisitos de projecto para arquitecturas distribuídas (Critérios para a escolha do Modelo)
Modelos fundamentais – MFSD
Modelo de interação
Modelo de falhas
Modelo de segurança
Visão de Sistemas Distribuídos
INTRODUÇÃO/ CONCEITOS
• Middleware podemos dizer que ele é uma API
(Conjunto de rotinas e padrões de programação), que
compõem, uma abstração de protocolos de
comunicação e camada de infra-estrutura.
• Programas de middleware são fornecidos em um
software local e serviços em nuvem, pode ser usado
independentemente ou juntos, dependendo do caso de
uso
Middleware
• Middleware é um conjunto de funcionalidades e
padronizações que actua entre a aplicação e a
plataforma (S.O.), oferecendo uma abstração
para a comunicação e representação dos dados,
permitindo que diferentes aplicações rodando em
diferentes plataformas se comuniquem de forma
transparente em um SD.
Middleware
• Camada Intermediária
de Suporte a Sistemas
Distribuídos
Middleware
Serviços de Middleware
Elementos do Middleware
Serviços de Middleware
Exemplos de Serviços de Middleware
• Serviços de Nomes
• Serviços Tempo
• Serviços de Segurança
• Serviços de consulta
• Serviços de relacionamento
• Serviços de ciclo de vida
• Etc
Serviços de Middleware
Benefícios de Middleware
Modelos de Estruturação de Sistemas
Distribuídos
• Os modelos servem para compreender o
funcionamento de um sistema no que concerne:
As principais entidades que formam o sistema;
A forma como essas entidades interagem entre si;
A factores que afectam o comportamento individual
e/ou colectivo das entidades.
Modelos de Sistemas Distribuídos
• Existem dois conjuntos de modelos de sistemas distribuídos:
Modelos Arquitectural
Ilustra a estruturação dos diferentes componentes e suas interacções
Modelo de camada
Modelo de camada Estruturação do software em diferentes níveis:
Plataforma;
Middlewar
Modelo de arquitectura de Sistemas
• A divisão de responsabilidades entre componentes do sistema
(aplicações, servidores e outros processos) e a colocação
desses componentes em computadores em rede é, talvez, o
aspecto mais evidente do desenho de sistemas distribuídos.
• Esta divisão de responsabilidades tem maiores implicações para a desempenho,
confiabilidade e segurança do sistema
principais modelos de arquitectura
• Modelo Cliente Servidor
• Modelo de Serviços Providenciados por Múltiplos Servidores,
• Modelo de Servidores proxies e caches
• Modelo P2P (Peer to Peer)
• Variações do modelo Cliente Servidor
• Código Móvel
• Agentes Móveis
• Thin Clients (Clientes Leves)
Critérios para a escolha do Modelo
Desempenho
o Tempo de resposta: carga do servidor e da rede, delay em atravessar
camadas de software, volume de dados
o Capacidade de processamento cliente, servidor, rede (throughput),
o Balanceamento de carga (divisão de trabalho, eg. applets, DNS, etc)
Qualidade de serviço
Uso de cache e replicação
Dependabilidade: garantia (confiança) que um sistema oferece no
provimento de um serviço ou tarefa
Critérios para a escolha do Modelo -Cont
Correcção, confiabilidade e segurança
Tolerância a falhas,
Segurança, Acesso
Disponibilizar recursos de forma parcial (baseado na
autorização do utilizador)
Performance (características dos modelos
fundamentais).
Modelo fundamental
• Todos modelos, compartilham algumas propriedades
fundamentais.
• Em particular, todos são compostos por processos que
se comunicam por envio/recebimento de mensagens
numa rede de computadores.
• Neste ponto são apresentados modelos baseados
nas características fundamentais que nos permitem
ser mais específicos acerca das suas características,
falhas e riscos de segurança que são sujeitos.
O modelo de sistema deve responder as seguintes
questões:
Quais as principais entidades no sistema?
Como essas entidades interagem?
Quais as características que afecta o
comportamento individual e colectivamente ?
Objectivo de um modelo :
Tornar explícitas todas suposições relevantes sobre o sistema em
modelação.
Permitir generalizações sobre o que é possível ou impossível de ser
realizado dadas as suposições. As generalizações podem se tornar sob
forma de objectivo principal de algoritmos ou propriedades desejáveis
que sejam garantidas. A garantia depende da análise lógica, quando
apropriado, prova matemática.
Modelos fundamentais são:
• Modelo de interacção,
• Modelo de falhas
• Modelo de segurança.
Bibliografia
• Tanebaum, André S.; Steen, Marten van. Distributed Systems: principles and
paradigms, 2002
• Coulouris, George et. Al. Distributed Systems: concepts and design 3rd edition, 20
• Marques, José Alves; Gudes, Paulo. Tecnologia de Sistemas Distribuídos 2ª edição,
FCA, 1998
• Boger, Marko. Java in Distributed Sytems: concurrency, distribution and
persistance; 2001