Integrações de Aplicações
Empresariais
Prof. Paulo Fernando da Silva
UNC – Universidade do Contestado
Pós-Graduação em Sistemas de Informação Aplicados
a Web
Organização
• Módulo 1:
– Integração de Aplicações;
– Troca de Mensagens (Client-Server);
• Módulo 2:
– RPC
– RMI;
• Módulo 3:
– Corba
– DCOM;
Organização
• Módulo 4:
– Enterprise Java Beans;
– Servidores de Aplicação;
• Módulo 5:
– Message Brokers;
– Agentes de Software;
• Módulo 6:
– Web Services / XML;
– Avaliação;
Módulo 1 - Sumário
• Integração de Aplicações;
– Introdução;
– Arquiteturas;
– Middleware;
• Troca de Mensagens;
–
–
–
–
Arquitetura Client-Server
JMS – Java Message Server;
Estudo de Caso;
Atividade;
Integração de Aplicações
Introdução
• Integrar:
–
–
–
–
–
Sistemas Legados;
Sistemas Distribuídos;
Comércio Eletrônico;
Cliente / Fornecedor;
etc...
Integração de Aplicações
Introdução - Desafios
•
•
•
•
•
•
•
Heterogeneidade;
Abertura;
Segurança;
Escalabilidade;
Tolerância a Falhas;
Concorrência;
Transparência;
Integração de Aplicações
Transparência
Transparência
Acesso
Localização
Descrição
Esconde diferenças na representação de dados e como um
recurso é acessado
Esconde onde um recurso está localizado
Migração
Esconde que um recurso pode mover-se para outra localização
Relocação
Esconde que um recurso pode ser movido para outra localização
enquanto esta sendo usado
Replicação
Esconde que um recurso está distribuído por vários servidores.
Concorrência
Falha
Persistência
Esconde que um recurso pode ser compartilhado por vários
usuários concorrentes
Esconde a falha e recuperação de um recurso
Esconde quando um recurso (software) esta em memória ou em
disco
Integração de Aplicações
Arquiteturas – Cliente / Servidor
Client
invocation
result
invocation
Server
result
Server
Client
Key:
Proc ess :
Computer:
Integração de Aplicações
Arquiteturas – Cliente / Vários Servidores
Servic e
Server
Client
Server
Client
Server
Integração de Aplicações
Arquiteturas – Servidor Proxy
Web
s erver
Client
Proxy
s erver
Client
Web
s erver
Integração de Aplicações
Arquiteturas – Peer-to-Peer
Applic ation
Applic ation
Coordination
c ode
Coordination
c ode
Applic ation
Coordination
c ode
Integração de Aplicações
Arquiteturas – Código Móvel
a) c lient reques t res ults in the downl oadi ng of applet c ode
Client
Applet c ode
Web
s erver
b) c lient interac ts with the appl et
Client
Applet
Web
s erver
Integração de Aplicações
Arquiteturas – Agente Móvel
• É um programa que viaja de um
computador para outros;
• Inclui código e dados;
• Geralmente realiza coleta de
informações;
• Realiza acesso a recursos locais no
servidor em que executa;
Integração de Aplicações
Exemplos – Intra-Rede
email server
Desktop
c om pute rs
print and other servers
Loc al area
network
Web s erver
email server
File server
print
other s ervers
the res t of
the Internet
router/firewal l
Integração de Aplicações
Exemplos – Inter-Rede
intranet
ISP
%
%
%
%
backbone
satellite link
desktop computer:
server
: link:
network
Integração de Aplicações
Middleware
Applic ations , s ervic es
RMI and RPC
T his
c hapter
reques t-reply protocol
marshall ing and external data repres entation
UDP and T CP
Middleware
layers
Troca de Mensagens
Comunicação Sockets
socket
any port
agreed port
socket
message
client
server
other ports
Internet address = 138.37.94.248
Internet address = 138.37.88.249
Troca de Mensagens
Arquitetura Client-Server
Client
doOperation
Server
Request
message
(wait)
Reply
message
(continuation)
getRequest
select object
execute
method
sendReply
Troca de Mensagens
Arquitetura Client-Server
public byte[] doOperation (RemoteObjectRef o, int methodId, byte[] arguments)
sends a request message to the remote object and returns the reply.
The arguments specify the remote object, the method to be invoked and the arguments of
that method.
public byte[] getRequest ();
acquires a client request via the server port.
public void sendReply (byte[] reply, InetAddress clientHost, int clientPort);
sends the reply message reply to the client at its Internet address and port.
Troca de Mensagens
Arquitetura Client-Server
Name
Client
Messages sent by
Server
Client
R
Request
RR
Request
Reply
RRA
Request
Reply
Acknowledge reply
Troca de Mensagens
Visão do JNDI usado pelo JMS
• JNDI: Java Naming and Directory
Interface;
• É uma interface para registro e
localização de nomes e diretórios;
• É necessário existir um provedor JNDI
que implemente a interface;
Troca de Mensagens
Visão do JNDI usado pelo JMS
Troca de Mensagens
Visão do JNDI usado pelo JMS
• Nomes estão em um contexto;
• Aplicação precisa obter o contexto JNDI
inicial;
• É necessário informar:
– Initial Context Factory;
– Provider URL
Troca de Mensagens
Visão do JNDI usado pelo JMS
• Pesquisa no Contexto:
queue = (Queue) ic.lookup(queueName);
Troca de Mensagens
JMS – Java Message Server
• É uma API para troca de mensagens
entre processos;
• JMS não implementa a troca de
mensagens;
• JMS é apenas uma interface;
• É necessário um “provedor” para
implementar a interface JMS;
Troca de Mensagens
JMS – Java Message Server: Arquitetura
• Provedor: implementa a interface JMS;
• Cliente JMS: envia ou recebe
mensagem;
• Domínio de troca: ponto-a-ponto ou
publicação-assinatura;
• Mensagem: objetos trocados na
comunicação;
Troca de Mensagens
JMS – Java Message Server: Arquitetura
• Filas: recebem mensagens ponto-aponto;
• Tópicos: recebem as mensagens
publicação-assinatura;
• Objetos administrados: usados para
criar a conexão:
– Fábricas e Destinos;
• Conexão e Sessão;
Troca de Mensagens
JMS – Java Message Server
Troca de Mensagens
JMS – Java Message Server: Conexão
• Cliente obtém acesso ao JMS Provider
através do JNDI;
• Ferramenta administrativa cria
ConnectionFactory e Destination;
• Cliente pesquisa no JNDI;
• Cliente acessa JMS Provider;
Troca de Mensagens
JMS – Java Message Server: Conexão
Troca de Mensagens
JMS – Java Message Server: Tipos de Troca
• Ponto-a-Ponto:
– Trabalha com filas;
– Mensagem de um para um;
• Publicação-Assinatura:
– Trabalho com tópicos;
– Mensagem de um para muitos;
Troca de Mensagens
JMS – Point-to-Point
Troca de Mensagens
JMS – Publishes / Subscribes
Troca de Mensagens
JMS – Java Message Server: API
•Ver JavaDoc
Troca de Mensagens
Estudo de Caso - Ambiente
• J2SE 1.4:
– Verificar instalação e configuração;
– Variável JAVA_HOME e bin no path;
• J2EE 1.3:
– Verificar instalação e configuração;
– Variável J2EE_HOME, bin no path e
lib\j2ee.jar no classpath
– Implementação de Referência será o provedor
JNDI e JMS;
Troca de Mensagens
Estudo de Caso - Queue
• Código Fonte:
– SimpleQueueSender/SimpleQueueReceiver;
• Compilar Sender / Receiver;
• Iniciar Provedor JNDI e JMS;
– start j2ee –verbose;
• Executar servidor / cliente:
– java <fonte> jms/Queue;
Troca de Mensagens
Estudo de Caso - Queue
• Executar na mesma janela:
– Java SimpleQueueSender jms/Queue 5;
– Java SimpleQueueReceiver jms/Queue;
• Testar em diferentes máquinas;
• Criar uma nova fila:
– j2eeAdmin –addJmsDestionation jms/MyQueue
Queue;
• Fazer testes com nova fila;
Troca de Mensagens
Atividade - Queue
• Criar duas filas:
– Cliente para Servidor;
– Servidor para Cliente;
• Cliente envia uma requisição para
servidor por uma fila;
• Servidor responde para cliente pela
outra fila;
• Mensagens são exibidas no cliente e no
servidor;
Troca de Mensagens
Estudo de Caso - Topic
• Código Fonte:
– SimpleTopicSubscriber / TextListener;
– SimpleTopicPublisher;
• Compilar Subscriber / Publisher;
• Iniciar Provedor JNDI e JMS;
– start j2ee –verbose;
• Executar Subscriber / Publisher:
– java <fonte> jms/Topic;
Troca de Mensagens
Estudo de Caso - Topic
• Testar em diferentes máquinas;
• Criar um novo tópico:
– j2eeAdmin –addJmsDestionation jms/MyTopic
Topic;
– Listar recursos;
– Remover recursos;
• Fazer testes com novo Tópico;
Troca de Mensagens
Atividade - Topic
• Criar dois tópicos:
– Cliente para Servidor;
– Servidor para Cliente;
• Cliente envia uma requisição para
servidor por um tópico;
• Servidor responde para cliente pelo
outro tópico;
• Mensagens são exibidas no cliente e no
servidor;
Download

jms/Queue - Departamento de Sistemas e Computação