Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

UNIVERSIDADE FEDERAL DE GOIÁSUNIVERSIDADE FEDERAL DE GOIÁS
INSTITUTO DE INFORMÁTICAINSTITUTO DE INFORMÁTICA
Sistemas DistribuídosSistemas Distribuídos
Prof. Sérgio T. Carvalho
sergio@inf.ufg.br
Comunicação Indireta
2
Comunicação IndiretaComunicação Indireta
● Comunicação entre entidades em um SD por 
meio de um intermediário, sem que haja 
qualquer acoplamento entre o sender e o(s) 
receiver(s)
● IPC, RPC: comunicação direta com alto 
acoplamento entre um sender e um receiver
● space and time uncoupling
– space: sender não conhece a identidade do(s) 
receiver(s)
– time: sender e receiver(s) possuem tempos 
de vida independentes
3
Space and Time couplingSpace and Time coupling
Há desvantagem na comunicação indireta?
4
● Diferença entre Comunicação Assíncrona e 
time uncoupling?
5
Comunicação Assíncrona e IndiretaComunicação Assíncrona e Indireta
6
Modelos (Paradigmas) de Modelos (Paradigmas) de 
Comunicação IndiretaComunicação Indireta
● Comunicação de Grupo
● Sistema publish/subscribe
● Filas de Mensagens
● Memória Compartilhada Distribuída
● Espaços de Tuplas
7
Comunicação em GrupoComunicação em Grupo
8
Comunicação em GrupoComunicação em Grupo
● Disseminação confiável de informações entre 
muitos clientes
● Suporte a aplicações colaborativas
● Implementação de estratégias de tolerância a 
falhas
● Suporte a monitoramento e gerenciamento 
(por exemplo, balanceamento de carga)
9
Comunicação em GrupoComunicação em Grupo
10
ImplementaçãoImplementação
● Semântica de entrega de mensagens em 
grupos:
– Ordem FIFO: considera ordenação das 
mensagens no remetente
– Ordem causal: considera a causalidade entre 
os eventos
– Ordem total: considera a ordem total dos 
eventos → todos recebem na mesma ordem 
(balanceamento de carga)
11
Sistemas Sistemas Publish-Subscribe Publish-Subscribe (P/S)(P/S)
((ouou distributed event-based systems) distributed event-based systems)
12
Sistemas Sistemas Publish-Subscribe Publish-Subscribe (P/S)(P/S)
((ouou distributed event-based systems) distributed event-based systems)
● Sistema baseado em eventos distribuídos
● Sistema distribuído composto de
– Publishers: processos que publicam eventos 
no sistema P/S
– Subscribers: processos de consomem 
eventos no sistema P/S
● Subscription indica eventos em que um subscriber 
está interessado
● Entrega de evento: event notification
13
Sistemas Sistemas Publish-SubscribePublish-Subscribe
((ouou distributed event-based systems) distributed event-based systems)
● Modelo de comunicação assíncrona entre
● gerador de eventos (objetos de interesse) e
● consumidores de eventos (assinantes)
● Eventos são comunicados via notificações
● Completo desacoplamento entre geradores e 
consumidores de eventos
● um gerador de eventos não sabe quais 
consumidores recebem suas notificações
● Tipos de eventos
● tipos de dados envolvidos em um evento
14
Sistemas Sistemas Publish-SubscribePublish-Subscribe
((ouou distributed event-based systems) distributed event-based systems)
● Mais amplamente usado
● Publicadores (publishers) publicam eventos 
estruturados em um serviço de eventos e 
assinantes (subscribers) expressam 
interesse em eventos particulares
Estilos de Arquitetura
16
Sistemas Sistemas Publish-SubscribePublish-Subscribe
((ouou distributed event-based systems) distributed event-based systems)
● Examples of Application domains
– Areas with live feeds of real-time data
– Support for cooperative working
● Participants need to be informed of events of 
shared interest
– Support for ubiquitous computing
● Management of events emanating from the 
ubiquitous infrastructure
– Monitoring applications 
Homecare system: an overview
18
Eventos e notificações: ExemploEventos e notificações: Exemplo
Dealer’s computer
Information
provider
Dealer
External
source
External
source
Information
provider
Dealer
Dealer
Dealer
Notification
Notification
Notification
Notification
Notification
Notification
Notification
Notification
Dealer’s computer
Dealer’s computerDealer’s computer
Notification
Notification
19
Arquitetura distribuída para notificação de Arquitetura distribuída para notificação de 
eventoseventos
subscriberobserverobject of interest
Event service
object of interest
object of interest observer
subscriber
subscriber
3.
1.
2. notification
notification
notification
notification
20
Papéis dos componentes de uma Papéis dos componentes de uma 
arquitetura de eventosarquitetura de eventos
Objeto de interesse
gerador de eventos de algum tipo especificado
Evento
ocorrência em um objeto de interesse
Notificação
objeto que contém informação sobre um evento, 
utilizado para comunicá-lo aos interessados
Assinante
objeto que registra interesse por notificações de certo 
tipo de evento
21
Papéis dos componentes de uma Papéis dos componentes de uma 
arquitetura de eventos (2)arquitetura de eventos (2)
Objeto observador
intermediador entre objetos de interesse e assinantes
implementa a lógica de notificação
encaminhamento, filtragem, correlação de eventos para 
detectar padrões, caixa postal de eventos
seu uso é opcional
Publicador
torna tipos de eventos conhecidos do público
pode ser o objeto observador ou o próprio objeto de 
interesse que gera o evento
22
23
Characteristics of Characteristics of Publish-Subscribe Publish-Subscribe 
SystemsSystems
● Heterogeneity
– Components that were not designed to 
interoperate can be work together
● Asynchronicity
– Notifications are sent asynchronously by 
event-generating publishers to all subscribers 
that have expressed an interest in them to 
prevent publishers needing to synchronize 
with subscribers. 
– Publishers and subscribers need to be 
decoupled
24
The programming modelThe programming model
25
The programming modelThe programming model
● publish(e) → publica um evento no sistema
● subscribe(f) → indica o interesse por um tópico 
que atenda a certos critérios
● unsubscribe(f) → indica não ter interesse por 
um tópico
● notify(e) → entrega evento a subscriber
● advertise(f) → tipos de tópicos a serem publi- 
cados no futuro
26
The programming modelThe programming model
● Tipos de assinaturas
– Channel-based → subscription indica o 
interesse em todos os eventos de um canal
– Topic-based → (ou assunto/subject) 
subscription indica um tópico de interesse, 
entre vários associados aos eventos do 
sistema
– Content-based → subscription indica 
restrições quanto ao conteúdo dos eventos
– Type-based → eventos são tipados, e 
subscription indica tipos ou subtipos de 
interesse
27
The programming modelThe programming model
28
The programming modelThe programming model
29
Implementation issuesImplementation issues
● Central task: to ensure that events are 
delivered efficiently to all subscribers that 
have filters defined that match the event.
● Additional requirements: security, scalability, 
failure handling, concurrency and quality of 
service
● Implementation has been an area of intense 
investigation
30
Implementation issuesImplementation issues
Centralized
– A single node with a server on that node 
acting as an event broker
– Publishers publish events to this broker
– Subscribers send subscriptions to the broker 
and receive notifications in return
– Interaction with the broker through point-to-
point messages (message passing or remote 
invocation)
● What is the problem?
31
Implementation issuesImplementation issues
Problems...
– The design lacks resilience and scalability– The centralized broker represents
● a single point for system failure and a 
● a performance bottleneck
● Solution...?
32
Implementation issuesImplementation issues
33
Implementation issuesImplementation issues
● Network of brokers
34
Broker OverlayBroker Overlay
35
Flat-hierarchyFlat-hierarchy
36
The architecture of publish-subscribe The architecture of publish-subscribe 
systemssystems
37
Event FloodingEvent Flooding
38
Subscription FloodingSubscription Flooding
39
Filtering-based FloodingFiltering-based Flooding
40
Filtering-based routingFiltering-based routing
41
Rendezvous-based routingRendezvous-based routing
42
Modelo Filas de MensagensModelo Filas de Mensagens
(message queues)(message queues)
● Message-queues provide a point-to-point service
– Sender places the message into a queue, and 
it is then removed by a single process
● Also reffered to as Message-Oriented Middleware
● Commercial implementations
– WebSphere MQ (IBM), MSMQ (Microsoft), 
JMS
● Support for transactions 
43
Message QueuesMessage Queues
44
Programming modelProgramming model
● Producer processes can send messages to a specific 
queue and consumer processes can then receive 
messages from this queue
● Three styles of receive
– Blocking receive
– Non-blocking receive (polling)
– Notify 
45
Programming modelProgramming model
● Properties of the message queue systems
– Messages are persistent until they are consumed
– Reliable delivery
● Messages are commited to disk
● Any message sent is eventually received 
and the message received is identical to the 
one sent
● No messages are delivered twice
● Message queues versus message-passing
– Queues are explicit and third-party entities
46
Implementation issuesImplementation issues
● Centralized versus distributed
47
A simple networked topology in WebSphere MQA simple networked topology in WebSphere MQ
48
The programming model offered by JMSThe programming model offered by JMS
49
The programming model offered by JMSThe programming model offered by JMS
50
The programming model offered by JMSThe programming model offered by JMS
51
The programming model offered by JMSThe programming model offered by JMS
52
The programming model offered by JMSThe programming model offered by JMS
53
The programming model offered by JMSThe programming model offered by JMS
54
The programming model offered by JMSThe programming model offered by JMS
55
Distributed Shared MemoryDistributed Shared Memory
● DSM is a abstraction used for sharing data between 
computers that do not share physical memory
56
Distributed Shared MemoryDistributed Shared Memory
● Problems of implementing DSM are related to the 
replication issues and caching of shared files
● The significance of DSM
– Development of shared-memory multiprocessors
– Algorithms for parallel computation
– Caching strategies, fast processor-memory 
interconnections
● Number of processors
57
Tuple SpaceTuple Space
58
CréditosCréditos
Prof. Sérgio T. Carvalho
sergio@inf.ufg.br
	Slide 1
	Slide 2
	Slide 3
	Slide 4
	Slide 5
	Slide 6
	Slide 7
	Slide 8
	Slide 9
	Slide 10
	Slide 11
	Slide 12
	Slide 13
	Slide 14
	Slide 15
	Slide 16
	Slide 17
	Figure 5.10 Dealing room system
	Figure 5.11 Architecture for distributed event notification
	Slide 20
	Slide 21
	Slide 22
	Slide 23
	Slide 24
	Slide 25
	Slide 26
	Slide 27
	Slide 28
	Slide 29
	Slide 30
	Slide 31
	Slide 32
	Slide 33
	Slide 34
	Slide 35
	Slide 36
	Slide 37
	Slide 38
	Slide 39
	Slide 40
	Slide 41
	Slide 42
	Slide 43
	Slide 44
	Slide 45
	Slide 46
	Slide 47
	Slide 48
	Slide 49
	Slide 50
	Slide 51
	Slide 52
	Slide 53
	Slide 54
	Slide 55
	Slide 56
	Slide 57
	Slide 58

Mais conteúdos dessa disciplina