Filas de Mensagens. Razões para usar Filas de Mensagens
|
|
- Antônia Mendes Cabral
- 5 Há anos
- Visualizações:
Transcrição
1 Filas de Mensagens Message Oriented Middleware - MOM Razões para usar Filas de Mensagens Comunicação Permite que a comunicação se processe mesmo quando o servidor não está conectado à rede Funcionamento assíncrono permite distribuir carga e ganhar eficiência Modelos de Comunicação Modelo de comunicação diferente: publicação/subscrição Permite modelos de comunicação 1 para muitos e muitos para muitos.
2 Aspectos negativos a considerar A comunicação assíncrona implica um modelo de programação mais difícil (programação por eventos). Os servidores de filas de mensagens são mais um custo de investimento e de suporte Canal com fila de mensagens Rede Emissor Receptor Emissor fila Receptor Emissor fila Receptor Emissor fila fila Receptor
3 Integração por Mensagens Message Oriented Middleware A integração é feita através do encaminhamento de informação (mensagens) entre os sistemas. As aplicações recebem e enviam as mensagens para um servidor central (broker). As mensagens uma vez recebidas pelo broker podem ser reformatadas, combinadas ou modificas por forma a serem entendidas pelo sistema de destino. Normalmente não é necessário modificar os sistemas envolvidos. Os Message Brokers fornecem adaptadores para as aplicações mais comuns (SAP, Baan, PeopleSoft, etc.). Objectivos Genéricos dos MOM Store andforward Broker de mensagens Subscrição e Publicação Garantia de entrega Sequência de mensagens Routing simbólico Funcionamento em Pedido-Resposta Mensagens de eventos Transformação de mensagens Destinos ad-hoc Resolução de excepções Normalização Transferência de ficheiros Segurança
4 Características MOM (I) Store Forward A mensagem deve ser aceite pelo serviço de mensagens e e armazenada até que o receptor ou receptores estejam disponíveis para a receberem O emissor deve ser imediatamente desbloqueado depois da mensagem ter sido aceite para envio (funcionamento assíncrono) As Mensagens são armazenadas de forma persistente pelo middleware Broker de mensagens Para além de uma comunicação ponto-a-ponto, o sistema efectua a distribuição de mensagens permitindo o envio de mensagens de uma aplicação para um conjunto de outras que se executam em diversos sistemas. Subscrição e Publicação O modelo de comunicação é organizado em torno de tópicos. Os receptores interessados subscrevem o tópico e recebem todas as mensagens ou aplicam um filtro de selecção Publish/Subscribe
5 Características MOM (II) Garantia de entrega O mecanismo deve garantir a entrega da mensagem ao receptor(es) A entrega deve ser exactamente uma vez (não pode ser duplicada) A aplicação que envia a mensagem tem esta garantia de qualidade de serviço pelo que não necessita de verificar a entrega Sequência das mensagens A sequência de envio das mensagens de um emissor deve ser respeitada, garantido a ordenação dos acontecimentos que as mensagens representam. Evita que as aplicações se preocupem com a ordem. Routing simbólico O endereçamento das mensagens baseia-se em nomes simbólicos virtualizando a rede de comunicações Características MOM (III) Pedido-resposta Muitas interacções baseiam-se num pedido e numa resposta. Comportamento que á a base da chamada remota de procedimentos O emissor poderia especificar o endereço de resposta mas este estaria dependente da organização da rede. A infraestrutura pode encarregar-se de fazer o emparelhamento, permitindo que a resposta provenha de uma outra aplicação Eventos Assinalam acontecimento que podem ter origem dentro ou fora do sistema Permitem alterar o fluxo dos processos Transformação de mensagens Possibilidade de aceitar mensagens com formatos predefinidos e transformá-las para o formato do receptor. Permite que as integrações não estejam dependentes de um formato de aplicações herdadas
6 Pipelines Orquestração Transporte Transporte Decrypt Parse Resolve Party Serialize Sign Encrypt Pipeline Recepção Pipeline Envio Message Box Características MOM (IV) Resolução de excepções A infraestrutura deve tentar tratar os erros habituais como os de comunicação Deve assinalar os acontecimentos que envolvam quebra da semântica: impossível de entregar, exactamente uma-vez não respeitado, etc. Transferência de ficheiros A maioria das mensagens devem ser relativamente pequenas, contudo a infra-estrutura deve poder enviar ficheiros de dimensão grande entre aplicações porque muitas integrações são feitas com ficheiros Segurança A segurança tem de ser considerada a dois níveis Dentro da organização Com sistemas externos Deve permitir privacidade, integridade, autenticação
7 Exemplo de MOM Java Messages Java Messaging Service - JMS Elementos da infraestrutura Filas de mensagens Envio e recepção de mensagens Mensagens ponto a ponto Subscrição e publicação de mensagens Formato das Mensagens API em Java
8 Envio e Recepção de Mensagens As aplicações falam com o message broker através de uma connection Dentro de uma connection um processo pode ter várias sessions para cada uma das suas tarefas (threads) As mensagens podem ser: Stream sequência de tipos básicos de Java Texto na qual se incluem documentos XML Objectos objectos Java serializados Bytes Envio das Mensagens Ponto a Ponto A designação pode confundir. Neste caso quer dizer que a aplicação define a queue para onde envia a mensagem. A aplicação deve obter a referência para a queue através de um serviço de nomes (JNDI) O sistema passa automaticamente a referência para a queue de resposta Publicar e Subscrever As mensagens não são enviadas para um destinatário mas para um tópico As mensagens podem ser consideradas eventos que são comunicados aos destinatários interessados no tópico O subscritor do tópico pode ser durable, caso em que as mensagens são armazenadas enquanto está inactivo
9 Filas de mensagens e transacções A garantia de entrega é assegurada pelas filas de mensagens serem persistentes Para assegurar a semântica exactamente-uma vez as JMS queues podem ser opcionalmente transaccionais (transacted) através de um parâmetro na criação da sessão O transaccional existe quer do lado do envio quer da recepção. No envio a mensagem só é considerada como estando na fila quando a aplicação faz commit Na recepção, se a aplicação ou o commit falham a mensagem permanece na fila até a aplicação a voltar a ler. Uma Session está sempre associada a uma transacção corrente, não há begin; commit e rollback porque uma transacção automaticamente começa outra O JMS não implementa transacções distribuídas Formato da Mensagem O JMS não define uma norma para as mensagens pelo que produtos do tipo JMS podem ter formatos diferentes Mas define um formato de mensagem abstracto que define a informação que deve existir numa mensagem
10 API do JMS Modelo de objectos que considera: Queue connection factory Queue Connection Queue session uma para cada thread Modelo Encontrar uma ConnectionFactory através do JNDI Encontrar uma Destination através do JNDI Usar a Connection Factory para criar uma Connection Usar a Connection para criar uma ou mais Sessions Usar a Session e a Destination para criar o MessageProducer e MessageConsumer Iniciar a Connection Application Queue Connection Factory Queue Connection Queue Session Text Message Queue Sender Queue Receiver createqueueconnection createqueuesession createsender (queue) createreceiver (queue) Start() creattextmessage () settext(messagetext) Send(message) Receive()
11 Exemplo JMS(I) public class Hello { public static void main(string[] args) { try { /* Declaração das variáveis JMS */ QueueConnectionFactory queueconnectionfactory = null; QueueConnection queueconnection = null; Queue queue = null; QueueSession queuesession = null; Definição da QueueSender queuesender = null; localização do QueueReceiver queuereceiver = null; Message TextMessage textmessage = null; Message message = null; broker /* Declaração de variáveis para argumentos da linha de comando */ final String MQ_HOST_NAME; final String MQ_HOST_PORT; /* Validação dos argumentos recebidos na linha de comando */ if ( args.length < 2 ) { Exemplo JMS(II) System.out.println("Usage: java Hello <mq_host_name> <mq_host_port>"); System.exit(1); MQ_HOST_NAME = args[0]; MQ_HOST_PORT = args[1]; System.out.println("Message queue host is " + MQ_HOST_NAME + ":" + MQ_HOST_PORT); /* Instanciação de uma fábrica de ligações */ /* Instancia-se directamente a classe Sun MQ para poder usar os métodos para definir nome e porto do servidor de mensagens */ com.sun.messaging.queueconnectionfactory sunqueueconnectionfactory = new com.sun.messaging.queueconnectionfactory(); sunqueueconnectionfactory.setproperty("jmqbrokerhostname", MQ_HOST_NAME); sunqueueconnectionfactory.setproperty("jmqbrokerhostport", MQ_HOST_PORT); queueconnectionfactory = sunqueueconnectionfactory; Indica que a Session /* Criação de uma ligação ao servidor de mensagens */ não é Transaccional queueconnection = queueconnectionfactory.createqueueconnection(); /* Criação de uma sessão dentro da ligação estabelecida */ queuesession = queueconnection.createqueuesession(false, Session.AUTO_ACKNOWLEDGE);
12 Exemplo JMS(III) /* Instanciação de uma fila de mensagens com o nome especificado */ /* A fila é criada implicitamente no servidor, caso não exista */ queue = new com.sun.messaging.queue("world"); /* Criação do produtor de mensagens */ queuesender = queuesession.createsender(queue); /* Criação e envio de uma mensagem */ textmessage = queuesession.createtextmessage(); textmessage.settext("hello World"); System.out.println("Sending Message: " + textmessage.gettext()); queuesender.send(textmessage); /* Neste exemplo muito simples é o mesmo programa a enviar e a receber a mensagem */ /* Criação de um consumidor de mensagens a partir da fila */ queuereceiver = queuesession.createreceiver(queue); Exemplo JMS(IV) /* Reiniciação da ligação */ queueconnection.start(); /* Recepção de mensagem e análise do conteúdo */ message = queuereceiver.receive(); if (message instanceof TextMessage) { textmessage = (TextMessage) message; System.out.println("Read Message: " + textmessage.gettext()); /* Fecho da sessão e da ligação */ queuesession.close(); queueconnection.close(); catch (Exception e) { /* À falta de melhor tratamento de erro, é pelo menos conveniente imprimir a excepção */ System.out.println("Exception occurred : " + e.tostring()); System.out.println("Finished");
13 Exemplo: receptor Assíncrono (I) public class AsynchReceiver { public static void main(string[] args) { int exitresult = 0; String queuename = null; /* Declaração das variáveis JMS */ QueueConnectionFactory queueconnectionfactory = null; QueueConnection queueconnection = null; QueueSession queuesession = null; Queue queue = null; QueueReceiver queuereceiver = null; TextListener textlistener = null; /* Declaração de variáveis para argumentos da linha de comando */ final String MQ_HOST_NAME; final String MQ_HOST_PORT; /* Validação dos argumentos recebidos na linha de comando */ if (args.length!= 3) { System.out.println("Usage: java AsynchReceiver <mq_host_name> <mq_host_port> <queue_name>"); System.exit(1); Exemplo: receptor Assíncrono (II) MQ_HOST_NAME = args[0]; MQ_HOST_PORT = args[1]; System.out.println("Message queue host is " + MQ_HOST_NAME + ":" + MQ_HOST_PORT); queuename = new String(args[2]); System.out.println("Queue name is " + queuename); /* Criar uma fábrica de ligações, criar uma ligação, criar uma sessão a partir da ligação (false indica que não é transaccional), criar uma fila de mensagens */ try { com.sun.messaging.queueconnectionfactory sunqueueconnectionfactory = new com.sun.messaging.queueconnectionfactory(); sunqueueconnectionfactory.setproperty("jmqbrokerhostname", MQ_HOST_NAME); sunqueueconnectionfactory.setproperty("jmqbrokerhostport", MQ_HOST_PORT); queueconnectionfactory = sunqueueconnectionfactory; queueconnection = queueconnectionfactory.createqueueconnection(); queuesession = queueconnection.createqueuesession(false, Session.AUTO_ACKNOWLEDGE); queue = queuesession.createqueue(queuename);
14 Exemplo: receptor Assíncrono (III) catch (Exception e) { System.out.println("Connection problem: " + e.tostring()); if (queueconnection!= null) { try { queueconnection.close(); catch (JMSException ee) { System.exit(1); /* Criar consumidor de mensagens,registar o tratamento de mensagens (TextListener) e iniciar a recepção de mensagens. O 'listener' escreve as mensagens obtidas. O programa fica bloqueado até o 'listener' receber a mensagem final e efectuar o desbloqueio. */ try { queuereceiver = queuesession.createreceiver(queue); textlistener = new TextListener(); queuereceiver.setmessagelistener(textlistener); /* Iniciar a ligação */ queueconnection.start(); /* Aqui o programa está livre para ir fazer qualquer outra coisa Exemplo: receptor Assíncrono (IV) /* Quando não houver mais nada para fazer, vai bloquear-se para esperar o fim da recepção de mensagens */ textlistener.monitor.waittilldone(); catch (JMSException e) { System.out.println("Exception occurred: " + e.tostring()); exitresult = 1; finally { if (queueconnection!= null) { try { queueconnection.close(); catch (JMSException e) { exitresult = 1; System.out.println("Finished"); System.exit(exitResult);
15 Função que trata as mensagens assíncronas public class TextListener implements MessageListener { final DoneLatch monitor = new DoneLatch(); /* método invocado no Listener de mensagens quando chega uma mensagem nova */ public void onmessage(message message) { if (message instanceof TextMessage) { TextMessage msg = (TextMessage) message; try { System.out.println("Reading message: " + msg.gettext()); catch (JMSException e) { System.out.println("Exception in onmessage(): " + e.tostring()); else { /* A mensagem que não é de texto indica o fim da sequência. Acorda quem esteja à espera */ monitor.alldone(); Arquitectura J2EE
16 Microsoft Message Queues MSMQ - História MSMQ was designed and developed by a Microsoft developement team in Haifa, Israel. MSMQ version 1.0 was shipped with the NT Option pack. In this version MSMQ was integrated with SQL Server. The programming model was easy but the Installation and management was cumbersome. MSMQ version 2.0 shipped as an optional windows component with Windows Active Directory was born, MSMQ was quick to grab the opportunity to replace SQl-server dependency with AD. MSMQ version 3.0 shipped as an optional windows component with WinXP and Windows Major new features like HTTP protocol support, Multicasting support, Distribution lists, etc were introduced. Security and reliability of the product was greatly enhanced in version 3.0
17 Microsoft Message Queues Envio da mensagem MessageQueue MyMessageQ; Message MyMessage; MyMessageQ = new MessageQueue(txtQueuePath.Value); MyMessage = new Message(txtMessageToSend.Value); MyMessageQ.Send(MyMessage); Recepção da Mensagem MessageQueue MyMessageQ; Message MyMessage; MyMessageQ = new MessageQueue(QueuePath); MyMessage = MyMessageQ.Receive; WriteStatus("Message Received!"); DoSomeLongRunningProcess(); WriteStatus("Processing Finished!"); Wrappers para MSMQ
18 Enterprise Application Integration Integração de Aplicações
19 EAI na Arquitectura Tecnológica Cap 10 EAI baseado em Filas de Mensagens Agregam as funcionalidades dos message brokers com a possibilidade de execução de processos de negócio transversais às várias aplicações, dentro e fora de uma organização. A arquitectura integração por camadas típica compreende serviços comuns (segurança, repositório, etc.), um bus de mensagens, adaptadores, transformação de mensagens, gestão de processos e portais de informação.
20 Funcionalidade típica de um EAI Armazenamento de mensagens Guarda persistentemente as mensagens que chegam ao message broker. Dá suporte a mining de mensagens, armazenamento de mensagens e auditorias. Transformação de mensagens Converte uma mensagem de entrada para um formato que permita ser enviada para outro sistema. Processamento de regras Permite definir regras utilizadas no processamento e encaminhamento das mensagens. Re-encaminhamento inteligente Capacidade de re-enviar uma mensagem de acordo com o seu conteúdo e a sua origem. Serviços de repositório Mantém informação sobre as aplicações de origem e destino das mensagens. Adaptadores Camada de software que faz a ligação entre o message broker e as aplicações mais habituais Plataformas de EAI
21 Biztalk - Architectural Overview Application A Application B Application C HTTP SMTP Routing Services Messaging Content Based Bus Declarative Routing Application Adapter Receive Services MSMQ MQSeries Transformation Services Technology Adapter File Web Service Publish/Subscribe Business Process XML EDI Flat Custom Delivery Services Application Adapter Application D Application E Application F
Transacções distribuídas:
Transacções distribuídas: Three-Phase Commit (3PC) Departamento de Engenharia Informática É não-bloqueante: Todos os processos que não falham eventualmente decidem Qual a condição de terminação no 2PC?
Filas de Mensagens. Canal com fila de mensagens
Filas de Mensagens Message Oriented Middleware - MOM Canal com fila de mensagens Emissor Rede Receptor Emissor Emissor fila Modelo do RPC ou de ligação de transporte fila Receptor Receptor Emissor fila
IBM WebSphere MQ. Introdução
Introdução Arquitectura Application Messaging Interface WebSphere Aplication Server WebSphere Business Integration Server Vantagens e desvantagens Introdução Plataforma de integração e infraestrutura de
Sumário. Message Oriented Middleware (MOM) Sincronização na Comunicação. Comunicação Assíncrona
Sumário Message Oriented Middleware (MOM) October 16, 2008 Comunicação Assíncrona (MOM) Conceito Java Message Service Implementação Comunicação Assíncrona Problema: Nem sempre as entidades comunicantes
Enterprise Java Beans
1 Enterprise Java Beans Java Platform, Enterprise Edition. The Java EE Tutorial https://docs.oracle.com/javaee/7/jeett.pdf Formador Java EE Annotations http://www.physics.usyd.edu.au/~rennie/javaeereferencesheet.pdf
Message Oriented Middleware (MOM)
Message Oriented Middleware (MOM) November 1, 2009 Sumário Comunicação Assíncrona (MOM) Conceito Java Message Service Implementação Comunicação Assíncrona Problema: Nem sempre as entidades comunicantes
J533 - Minicurso. Helder da Rocha (helder@acm.org) www.argonavis.com.br
J533 - Minicurso Helder da Rocha (helder@acm.org) www.argonavis.com.br 1 Sumário Introdução Messaging e Message-Oriented Middlewares (MOMs) Quando usar MOMs? Vantagens e desvantagens O que é o Java Message
Message Driven Beans. Apresentação. Introdução Implementação de MDBs Deployment no JBoss Java Messaging Service Exemplo
Message Driven Beans Apresentação Introdução Implementação de MDBs Deployment no JBoss Java Messaging Service Exemplo 1 Introdução Message Driven Beans são EJBs que consomem mensagens enviadas para filas
Java Message Service (JMS)
Java Message Service (JMS) Disciplina de Sistemas Distribuídos Prof. Cristiano André da Costa Luiz Henrique Feltes Roteiro Introdução; Arquitetura; Vantagens / Desvantagens; Componentes do JMS; Códigos
J530 - Enterprise JavaBeans. Message-driven Beans. argonavis.com.br. Helder da Rocha
J530 - Enterprise JavaBeans Message-driven Beans Helder da Rocha (helder@acm.org) argonavis.com.br 1 O que é um Message-Driven Bean Bean guiado por mensagens, ou eventos Um event-handler distribuído em
Sistemas Distribuídos
Chamada Remota de Procedimento março de 2019 RPC: motivação A B send (B, &pedido) receive (B, &resposta) como facilitar esse padrão tão comum? encapsulamento de detalhes de comunicação criação, envio e
Message Oriented Middleware & Message Brokers
Message Oriented Middleware & Message Brokers Tecnologias de Middleware Pedro Miguel Martins Nunes Curso de Especialização em Informática 06/07 Departamento de Informática Faculdade de Ciências da Universidade
Resumo das Propriedades de UDP e de TCP
Relembrando... Processos duma aplicação distribuída comunicam via mensagens. O formato e o significado destas mensagens depende do protocolo usado. As mensagens são transportadas entre processos através
JMS. Java Message Service
JMS Autoria Autoria Fábio Cecin (1a versão) Versão V3.2, junho de 2013 C. Geyer Referências Referências: The JMS Tutorial após versão 1.4 do JEE em capítulo do tutorial JEE da Sun v.1.5 (JEE): até v. 1.3:
Este tutorial contém material (texto, código, imagens) produzido por Helder da Rocha em outubro de 2013 e poderá ser usado de acordo com os termos da licença Creative Commons BY-SA (Attribution- ShareAlike)
Num sistema de objectos distribuídos, dois conceitos são fundamentais.
Folha 9-1 Java RMI - Remote Method Invocation No modelo de programação orientada a objectos, vimos que um programa consiste numa colecção de objectos que comunicam entre si através da invocação dos seus
UFG - Instituto de Informática
UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 12 Beans Orientados a
Vamos fazer um pequeno experimento
1 Vamos fazer um pequeno experimento Dividam-se em dois grupos: Mestre Escravo Projeto de Sistemas Distribuídos Comunicação entre Processos Prof. Msc. Marcelo Iury de Sousa Oliveira marceloiury@gmail.com
Plataforma para Agentes
Plataforma para Agentes JATLite - Java Agent Template, Lite O que é o JATLite? http://java.stanford.edu/ http://www.fe.up.pt/~eol/aiad/jatlite/doc/index.html Pacote de programas em Java permitindo: rápida
MOM Message Oriented Middleware
MOM Message Oriented Middleware Bruno Miguel de Sousa Gonçalves 1.O que é a MOM? 1.1. Conceito Figura 1 Descrição geral da arquitectura MOM. Message Oriented Middleware trata-se de uma insfraestrutura
UFG - Instituto de Informática
UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 11 Serviços de Envio de
15/4/15. Processamento Paralelo Middleware Orientado a Objetos. Sistema operacional é a única infraestrutura para interação. Middleware é adicionado
Aplicações distribuídas: interação entre partes Processamento Paralelo Middleware Orientado a Objetos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br) Rede A Rede B Rede C 2015/01 - INF02799 Sistema
contidos na descrição do serviço para localizar, contactar e chamar o serviço. A figura mostra os componentes e a interação entre eles.
Web Services Web Service é um componente de software identificado por uma URI que independe de implementação ou de plataforma e pode ser descrito, publicado e invocado sobre uma rede por meio de mensagens
Sistemas Empresariais Integrados
Sistemas Empresariais Integrados Enterprise Integration Objectivos Analisar os principais motivos que justificam a integração de aplicações nas organizações. Definir e avaliar as arquitecturas de referência
Tutorial JMS com ActiveMQ Nível: Introdutório Autor: José Damico (jdamico@br.ibm.com) IBM Data: 26 de novembro de 2006
Tutorial JMS com ActiveMQ Nível: Introdutório Autor: José Damico (jdamico@br.ibm.com) IBM Data: 26 de novembro de 2006 O objetivo deste tutorial é oferecer uma documentação básica passo-a-passo e um exemplo
Sistemas Empresariais Integrados
Sistemas Empresariais Integrados Introdução Basic MOM: in basic MOM it is the sender who specifies the identity of the receivers sender receiver message broker core : with message brokers, custom message
Arquitecturas de Sistemas Distribuídos
Arquitecturas de Sistemas Distribuídos Arquitectura A arquitectura de um sistema distribuído define: A localização dos componentes de software nos nós da rede As relações e os padrões de comunicação entre
User Datagram Protocol
User Datagram Protocol UDP: Protocolo utiliza para distinguir para qual usuário ou aplicativo deve ser encaminhado um datagrama destinado a uma máquina que esteja executando mais de um processo. Problemas:
Canais de Comunicação
Canais de Comunicação February 24, 2010 Sumário Comunicação via Mensagens Propriedades dum Canal de Comunicação Protocolos da Internet UDP TCP Aplicação Distribuída O que é? É uma aplicação que consiste
STD29006 Sistemas Distribuídos
STD29006 Sistemas Distribuídos Comunicação II Prof. Emerson Ribeiro de Mello Instituto Federal de Santa Catarina IFSC campus São José mello@ifsc.edu.br http://docente.ifsc.edu.br/mello/std 05 de setembro
Sistemas Empresariais Integrados
Sistemas Empresariais Integrados Tecnologias de messaging (MSMQ) Tecnologias de messaging Microsoft Message Queuing(MSMQ) faz parte do sistema operativo infra-estrutura de mensagens e plataforma de desenvolvimento
Infra-Estrutura de Software
Infra-Estrutura de Software Entrada / Saída 2º. EE: 21/06 Próximas Datas http://www.cin.ufpe.br/~cagf/if677/2016-1/ slides/ Revisão de notas: 28/06 FINAL: 30/06 Diversidade de dispositivos Hardware de
Message Oriented Middleware (MOM)
Message Oriented Middleware (MOM) March 24, 2010 Comunicação Assíncrona Problema: Nem sempre as entidades comunicantes estão disponíveis simultaneamente. Por exemplo, um servidor de submissão pode estar
Java Message Service (JMS)
J530 - Enterprise JavaBeans Java Message Service (JMS) Helder da Rocha (helder@acm.org) argonavis.com.br 1 Introdução O objetivo deste capítulo é apresentar uma introdução ao modelo de comunicações baseado
Integração por Web Services
Integração por Web Services Versão 1.1 Maio 2010 Índice Índice... 2 Introdução... 3 Arquitectura PRIMAVERA... 4 User Interface... 4 Motor... 4 Interface para o Administrador... 5 Motores PRIMAVERA em Web
Preparação AV3 Fundamentos de Redes de Computadores
Preparação AV3 Fundamentos de Redes de Computadores 1 - Em uma rede de computadores existem dispositivos responsáveis por distribuir as informações por toda a rede. Quando falamos de dispositivos que atuam
Design and Evaluation of a Support Service for Mobile, Wireles. Applications
Design and Evaluation of a Support Service for Mobile, Wireless Publish/Subscribe Applications Tecnologias de Middleware 06/07 Curso de Especialização em Informática Departamento de Informática Faculdade
SPEEDMiddleware - MOM
SPEEDMiddleware - MOM Equipe: Guilherme Barros de Souza Plataformas de Distribuição 2010.1 Objetivo Implementar um middleware orientado a mensagem; Organizar e abstrair as camadas de distribuição e infra-estrutura
WebSphere MQ. Bruno Miguel de Sousa Gonçalves
WebSphere MQ Bruno Miguel de Sousa Gonçalves 1.Introdução ao WebSphere Os produtos WebSphere providenciam comunicação entre programas através da interligação entre componentes heterogéneos, processadores,
Integração de Sistemas com Webservices, JMS e EJB
TREINAMENTOS Integração de Sistemas com Webservices, JMS e EJB Integração de Sistemas com Webservices, JMS e EJB 31 de agosto de 2013 Sumário i Sobre a K19 1 Seguro Treinamento 2 Termo de Uso 3 Cursos
PROGRAMAÇÃO JAVA. Parte 3
PROGRAMAÇÃO JAVA Parte 3 O PRIMEIRO PROGRAMA O Java executa uma instrução a seguir a outra, pela ordem em que estão escritas. Essa sequência poderá ser contrariada de forma especial: Alternativas: Ciclos
A interface de uma mensagem é extremamente flexível e permite várias formas de customização de conteúdo. Figura 1 - Tipos de Mensagens JMS
Programando com Java Artigo http://mballem.wordpress.com/ Chat JMS com ActiveMQ Java Message Service Autor Marcio Ballem: é formado em Sistemas de Informação e possui certificação Oracle Certified Professional,
Sockets: Sumário. Resumo das Propriedades de UDP e de TCP
Sockets: Sumário Sockets TCP Modêlo. API de Java. API da biblioteca C. Avaliação Crítica de Sockets. 1 Resumo das Propriedades de UDP e de TCP Propriedade UDP TCP Abstracção Mens. Stream Baseado em Conexão
Sistemas Distribuídos
Sistemas Distribuídos RPC Remote Procedure Call 1 Fonte: Alcides Calsavara e Thais V. Batista Chamada de Procedimentos Remotos (RPC) Motivação: comunicação baseada em operações de entrada/saída Ideal:
Programação Na Web. Servlets: Ciclo de Vida. Agenda. Visão geral sobre ciclo de vida. Nascimento de uma Servlet. Execução de uma Servlet
Programação Na Web Servlets: Ciclo de Vida 1 António Gonçalves Agenda Visão geral sobre ciclo de vida Nascimento de uma Servlet Execução de uma Servlet Destruição de uma Servlet 2 Servlet Life Cycle 1
Comunicação orientada a mensagens
Comunicação orientada a mensagens STD29006 Engenharia de Telecomunicações Prof. Emerson Ribeiro de Mello http://docente.ifsc.edu.br/mello/std 31 DE AGOSTO DE 2018 Revisão das aulas anteriores Alguns pontos
Número: Nome: Página 1 de 7. Duração da prova: 1h30m. Grupo I [7] Considere o seguinte excerto (incompleto) de um programa cliente em SUN RPC:
Número: Nome: Página 1 de 7 LEIC/LETI 2016/17, Repescagem do 1º Teste de Sistemas Distribuídos 4 de julho de 2017 Responda no enunciado, usando apenas o espaço fornecido. Identifique todas as folhas. Uma
Sistemas Distribuídos Capítulo 1: Introdução
Sistemas Distribuídos Capítulo 1: Introdução J. Alves Marques Índice Definição de sistema distribuído Razões para a distribuição Evolução tecnológica Evolução do enquadramento económico Plataformas de
Sage API Application Programming Interface.
Application Programming Interface 1 Sage Next API 2 Introdução Application Programming Interface (Interface de Programação de Aplicativos). Funções acessíveis por programação e que permitem utilizar características
Grupo I [5,5v] Considere o seguinte código que ilustra uma componente programática de um sistema de RPC, neste caso do SUN-RPC.
Número: Nome: Página 1 de 7 LEIC/LERC 2012/13, 1º Teste de Sistemas Distribuídos, 16 de Abril de 2013 Responda no enunciado, apenas no espaço fornecido. Identifique todas as folhas. Duração: 1h30m Grupo
Linguagem de Programação II Implementação
Linguagem de Programação II Implementação Prof. Alessandro Borges 2 Tópicos Implementação em Java Variáveis Palavras reservadas Pacotes Identificador this Acessando membros de outros objetos API Java Nossa
Workflow Management Systems
Workflow Management Systems João Sequeira Tecnologias de Middleware 28 Outubro 2004 Plano de Apresentação Introdução O que são WfMS Background Histórico Definição de Sistemas de Workflow Execução de um
Domínios da Arquitectura
Visão que incorpora na arquitectura tecnológica o suporte aos conceitos SOA Explicitar o Bus de Serviços Os workflows e as orquestrações de processos 3/2/2005 José Alves Marques 1 Domínios da Arquitectura
Serviços de Comunicações Capítulo 3
Capítulo 3 A Camada de Transporte da Arquitectura TCP/IP 3.1 Portos e Sockets 3.2 O Protocolo UDP 3.3 O Protocolo TCP 1 3.1. Portos e Sockets A Camada de Transporte fornece transferência de dados fim-a-fim
APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar
- Aula 5 - PROGRAMAÇÃO DISTRIBUÍDA COM RMI 1 (Remote Method Invocation) 1. INTRODUÇÃO Sistemas distribuídos necessitam que aplicações, executando em vários espaços de endereçamento, normalmente em diferentes
Comunicação. capítulo
Comunicação capítulo 4 Camadas de protocolos: Modelo OSI Camadas de protocolos: Mensagem Protocolos de baixo nível Estas camadas implementam as funções básicas que envolvem uma rede de computadores: Física:
Publicar uma aplicação ASP.NET Core com base de dados SqlServer no Azure usando Visual Studio e um perfil para publicação (publish profile)
Publicar uma aplicação ASP.NET Core com base de dados SqlServer no Azure usando Visual Studio e um perfil para publicação (publish profile) 1. Instalar no Visual Studio 2017 o workload Azure Development
Instituto Superior de Engenharia de Lisboa
Instituto Superior de Engenharia de Lisboa Introdução à Programação (PG) Docente: Pedro Viçoso Fazenda (pfazenda@cedet.isel.ipl.pt) Professor Responsável: Pedro Alexandre Pereira (palex@cc.isel.ipl.pt)
Enterprise Java Beans
Enterprise Java Beans Prof. Pasteur Ottoni de Miranda Junior DCC PUC Minas Disponível em www.pasteurjr.blogspot.com 1-O que é um Enterprise Java Bean? O Entertprise Java Bean (EJB) é um componente server-side
Data and Computer Network Endereçamento IP
Endereçamento IP P P P Prof. Doutor Félix Singo Camadas do TCP/IP Data and Computer Network Aplicação: Camada mais alta Protocolos de Aplicações clientes e servidores HTTP, FTP, SMTP, POP Transporte: Estabelece
PROFICY HISTORIAN E SQL LINKED SERVER
PROFICY HISTORIAN E SQL LINKED SERVER Informações de produção consolidadas através de indicadores e armazenadas em historiadores de processo, como o Proficy Historian, muitas vezes devem ser integradas
Faça Fácil. Proficy Historian e SQL Linked Server
Faça Fácil Proficy Historian e SQL Linked Server Informações de produção consolidadas através de indicadores e armazenadas em historiadores de processo, como o Proficy Historian, muitas vezes devem ser
Projecto hipotético para resolvermos hoje
Projecto hipotético para resolvermos hoje 12/13 Sistemas Distribuídos 1 Projecto hipotético para resolvermos hoje Implementar servidor de contagem que mantém contador e oferece estas operações aos clientes:
Enterprise Application Integration (EAI)
Enterprise Application Integration (EAI) Histórico Sistemas de Informação (SI) muito caros As empresas passaram a contar com mais de um SI July Any Rizzo Oswaldo Filho Informações perdidas por falta de
Sistemas Operativos. Processos cooperantes e processos independentes
Processos (complementos) Processos cooperantes e processos independentes! Os processos que se executam de forma concorrente podem ser: Cooperantes podem afectar ou ser afectados pela execução de outros
Universidade Federal de Uberlândia Faculdade de Computação Programação Orientada a Objetos II Prof. Fabiano Dorça. Padrão Observer (Observador)
Universidade Federal de Uberlândia Faculdade de Computação Programação Orientada a Objetos II Prof. Fabiano Dorça Problema: Definir uma dependência um-para-muitos entre objetos, de forma quando o estado
Tipos, Literais, Operadores
Tipos, Literais, Operadores Identificadores São palavras utilizadas para nomear variáveis, métodos e classes Na linguagem Java, o identificador sempre começa por letra, sublinhado(_) ou cifrão ($) Não
Tipos, Literais, Operadores
Tipos, Literais, Operadores Identificadores São palavras utilizadas para nomear variáveis, métodos e classes Na linguagem Java, o identificador sempre começa por letra, sublinhado(_) ou cifrão ($) Não
Desenvolvimento de Aplicações Distribuídas
Arquitetura Pontifícia Universidade Católica de Minas Gerais Instituto de Ciências Exatas e Informática DAD (2019/01) Tópicos Apresentação da disciplina Introdução Desafios e características Arquitetura
Sistemas Empresariais Integrados
Sistemas Empresariais Integrados Introdução ao BizTalk Server Enterprise Service Bus (ESB) M. Weske: Business Process Management, Springer-Verlag Berlin Heidelberg 2007 1 Message broker M. Weske: Business
Plataforma para Agentes
Plataforma para es JATLite - Java Template, Lite O que é o JATLite? http://java.stanford.edu/ http://www.fe.up.pt/~eol/aiad/jatlite/doc/index.html Pacote de programas em Java permitindo: rápida criação
Diagramas de Package
190 Diagramas de Package À medida que os sistemas software se tornam mais complexos e o número de classes aumenta: Torna-se difícil efectuar a gestão das diversas classes A identificação de uma classe
Principais conceitos de CORBA
Principais conceitos de CORBA Tecgraf PUC-Rio fevereiro de 2011 Common Object Request Broker Architecture Uma arquitetura aberta para o desenvolvimento de aplicações distribuídas em um ambiente multilinguagem
Desenvolvimento de um Framework para replicação de dados entre bancos heterogêneos
Desenvolvimento de um Framework para replicação de dados entre bancos heterogêneos João Batista Gianisini JúniorJ Alexander Roberto Valdameri - Orientador Roteiro da apresentação Introdução Objetivos Motivação
Estruturas de Comunicação de Dados Aula 3 Camadas de Aplicação e Transporte
Estruturas de Comunicação de Dados Aula 3 Camadas de Aplicação e Transporte Escola Maria Eduarda Ramos de Barros Curso técnico em redes de computadores Carpina - PE Roteiro Aplicações de Rede Transporte
Java RMI. RMI Remote Method Invocation. Chamadas Remotas de Procedimentos (RPC) RPC - Implementação
Java Remote Method Invocation Java Remote Method Invocation () é um protocolo Java para comunicação entre processos Permite objetos Java invocar transparentemente métodos de outros objetos (que podem estar
Camada de Aplicação. Redes Industriais Prof. Rone Ilídio
Camada de Aplicação Redes Industriais Prof. Rone Ilídio Itens do Livro Redes de Computadores e a Internet, Kurose 5ª edição 2 Camada de Aplicação 2.1 Princípios de aplicações de rede 2.1.1 Arquiteturas
Web Technologies. Tópicos da apresentação
Web Technologies Tecnologias de Middleware 2004/2005 Hugo Simões hsimoes@di.fc.ul.pt 1 A Web Tópicos da apresentação Tecnologias Web para suporte a clientes remotos (Applets,CGI,Servlets) Servidores Aplicacionais
Colaboração entre dispositivos móveis com MD-DECI e SDM
Colaboração entre dispositivos móveis com MD-DECI e SDM Marcelo Malcher, Gustavo Baptista e Markus Endler Laboratory for Advanced Collaboration (LAC) PUC-Rio, Brazil Rio de Janeiro 25 de Setembro de 2009
O que é? É uma aplicação que consiste em 2 ou mais processos que executam em diferentes processadores que não partilham memória.
Sumário: Introdução aos SD (Uma) Definição dum sistema distribuído (SD). Exemplos de SDs. Potenciais vantagens de SDs. Objectivos no desenvolvimento de SDs. Dificuldades/obstáculos no desenvolvimento de
De forma simples, para a execução de comandos SQL com JDBC, precisa-se da instancia de três classes Java. São elas: Nome da classe Função
.1 JDBC A linguagem Java possui classes que permitem a com um banco de dados. Essas classes fazem parte do pacote JDBC (Java Database Connectivity), uma API (Application Program Interface) que permite
Programando sistemas distribuídos com objetos distribuídos na rede TCP/IP. Prof. Me. Sérgio Carlos Portari Júnior
Programando sistemas distribuídos com objetos distribuídos na rede TCP/IP Prof. Me. Sérgio Carlos Portari Júnior Conteúdo Programático Contextualizando: Aula anterior Camada Middleware Programar para SD
Sistemas Operacionais II
Introdução Instituto de Informátic ca - UFRGS Sistemas Operacionais II Comunicação e sincronização por troca de mensagens Aula 0 Em ambientes de memória distribuída a comunicação e a sincronização entre
Firewall - Inspeção com estado. (Stateful Inspection)
Proxy e FIREWALL Firewall - Inspeção com estado. (Stateful Inspection) As primeiras gerações de firewall eram ditos "stateless". Cada pacote é analisado individualmente, sem levar em conta pacotes anteriores
JavaTM RMI - Remote Method Invocation
JavaTM RMI - Remote Method Invocation Java e Engenharia de Software Orientada a Objetos por Jorge H. C. Fernandes (jhcf@di.ufpe.br) CESAR-DI-UFPE Julho de 1999 Objetivos desta Aula Mostrar o modelo de
4 Conceito de Herança
4 Conceito de Herança Hierarquia de classes e mecanismo de ligação Herança Uma classe pode herdar operações de uma superclasse e as suas operações podem ser herdadas por subclasses. O mecanismo de herança
Smart Proxies para Invocação de Serviços Web Replicados
Smart Proxies para Invocação de Serviços Web Replicados José Geraldo Ribeiro Júnior (CEFET-MG / PUC Minas) Orientador: Prof. Marco Túlio Valente (PUC Minas) Fevereiro 2007 Apresentação Motivação Proposta
Transferência de Arquivo: Protocolo FTP
Para iniciar uma sessão FTP (File Transfer Protocol) típica e acessar uma conta, o usuário deve fornecer uma identificação e uma senha; Após a identificação o usuário pode realizar operações de transferência
Faça Fácil Proficy Historian e SQL Linked Server
Faça Fácil Proficy Historian e SQL Linked Informações de produção consolidadas através de indicadores e armazenadas em historiadores de processo, como o Proficy Historian, muitas vezes devem ser integradas
Persistência. Prof. Alberto Costa Neto Linguagens de Programação. Departamento de Computação Universidade Federal de Sergipe
Persistência alberto@ufs.br de Programação Departamento de Computação Universidade Federal de Sergipe Retrospectiva Quanto ao Tempo de Vida Variáveis Estáticas Variáveis Stack-Dinâmicas Variáveis Heap-Dinâmicas
Aula 08 Estruturas de Condição. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes
Aula 08 Estruturas de Condição Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/ Agenda da Aula Entrada de Dados; Estruturas de Controle: Estrutura de Sequência;
Programação Concorrente com Thread Java. Luiz Affonso Guedes Sistemas Distribuidos
Programação Concorrente com Thread Java Luiz Affonso Guedes Sistemas Distribuidos Definições Básicas Threads são sub-procesos no sistema operacional. É menos custoso gerenciar threads do que processos.
PLATAFORMA SIGA RIO DAS VELHAS MANUAL DO CÓDIGO FONTE
PLATAFORMA SIGA RIO DAS VELHAS MANUAL DO CÓDIGO FONTE ATO CONVOCATÓRIO Nº 006/2016 CONTRATO DE GESTÃO IGAM Nº 002/IGAM/2012 09/2017 1 PLATAFORMA SIGA RIO DAS VELHAS MANUAL DO CÓDIGO FONTE ATO CONVOCATÓRIO
Níkolas Timóteo Paulino da Silva Redes de Computadores I ADS 2ºTermo
Níkolas Timóteo Paulino da Silva Redes de Computadores I ADS 2ºTermo 1) Desenhe duas redes com 7 e 8 computadores e defina a configuração IP de cada máquina com classe B e C, respectivamente. REDE A (7
FUNDAMENTOS DE REDES DE COMPUTADORES Unidade 5 Camada de Transporte e Aplicação. Luiz Leão
Unidade 5 Camada de Transporte e Aplicação Luiz Leão luizleao@gmail.com http://www.luizleao.com Conteúdo Programático 5.1 Protocolo UDP 5.2 Protocolo TCP 5.3 Principias Protocolos de Aplicação 5.3.1 SMTP
Programação com Sockets
Programação com LP4 Ciência da Computação 1 Comunicação entre processos Nível mais baixo É um tipo particular de modelo de programação em redes utilizado em várias linguagens como: C, C++ e Java São estruturas
Comunicação entre Processos
Comunicação entre Processos Prof. Dr. André Carvalho andre@icomp.ufam.edu.br Agenda n Comunicação entre Processos n Características dos mecanismos de comunicação Comunicação direta ou indireta, sincronismos,
Programação com Objectos. 2º Teste 2015/2016 1º Semestre
1/7 2015/2016 1º Semestre 13 de Janeiro de 2016, 18:30 (120 minutos) 2º Teste Nome: Número: Primeira Parte (3 valores) PERGUNTA RESPOSTA Segunda Parte (7 valores) PERGUNTA 1.1 2.1 1.2 2.2.1 1.3 2.2.2 1.4
COMUNICAÇÃO ENTRE PROCESSOS
Comunicação entre processos Memória Compartilhada: os processo compartilham variáveis e trocam informações através do uso dessas variáveis compartilhadas COMUNICAÇÃO ENTRE PROCESSOS P1 Sem Memória Compartilhada: