410 likes | 512 Views
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
E N D
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çõesIntrodução • Integrar: • Sistemas Legados; • Sistemas Distribuídos; • Comércio Eletrônico; • Cliente / Fornecedor; • etc...
Integração de AplicaçõesIntrodução - Desafios • Heterogeneidade; • Abertura; • Segurança; • Escalabilidade; • Tolerância a Falhas; • Concorrência; • Transparência;
Integração de AplicaçõesArquiteturas – Cliente / Vários Servidores
Integração de AplicaçõesArquiteturas – 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;
intranet ISP backbone satellite link desktop computer: % % % % server: network link: Integração de AplicaçõesExemplos – Inter-Rede
agreed port any port socket socket message client server other ports Internet address = 138.37.94.248 Internet address = 138.37.88.249 Troca de MensagensComunicação Sockets
Troca de MensagensArquitetura Client-Server Client Server Request doOperation getRequest message select object execute (wait) method Reply sendReply message (continuation)
Troca de MensagensArquitetura 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.
N a m e M es sag es s e nt b y C li e nt S e r ve r C li e nt R R e qu es t R R R e pl y R e qu es t R R A R e pl y A ck no w ledg e re ply R e qu es t Troca de MensagensArquitetura Client-Server
Troca de MensagensVisã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 MensagensVisã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 MensagensVisão do JNDI usado pelo JMS • Pesquisa no Contexto: • queue = (Queue) ic.lookup(queueName);
Troca de MensagensJMS – 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 MensagensJMS – 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 MensagensJMS – Java Message Server: Arquitetura • Filas: recebem mensagens ponto-a-ponto; • 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 MensagensJMS – 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 MensagensJMS – 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 MensagensJMS – Java Message Server: API • Ver JavaDoc
Troca de MensagensEstudo 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 MensagensEstudo 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 MensagensEstudo 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 MensagensAtividade - 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 MensagensEstudo 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 MensagensEstudo 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 MensagensAtividade - 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;