integrações de aplicações empresariais prof. paulo fernando da silva unc – universidade do...
TRANSCRIPT
![Page 1: 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](https://reader035.vdocuments.site/reader035/viewer/2022062307/552fc16e497959413d8ed3d2/html5/thumbnails/1.jpg)
Integrações de Aplicações Empresariais
Prof. Paulo Fernando da Silva
UNC – Universidade do ContestadoPós-Graduação em Sistemas de Informação Aplicados
a Web
![Page 2: 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](https://reader035.vdocuments.site/reader035/viewer/2022062307/552fc16e497959413d8ed3d2/html5/thumbnails/2.jpg)
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;
![Page 3: 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](https://reader035.vdocuments.site/reader035/viewer/2022062307/552fc16e497959413d8ed3d2/html5/thumbnails/3.jpg)
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;
![Page 4: 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](https://reader035.vdocuments.site/reader035/viewer/2022062307/552fc16e497959413d8ed3d2/html5/thumbnails/4.jpg)
Módulo 3 - Sumário
• CORBA – Common Object Request Broker Arquitecture– Introdução;– Arquitetura CORBA;– Estudo de Caso;– Atividade;
• DCOM – Distributed Component Object Model– Arquitetura DCOM;– Ferramentas DCOM;– Estudo de Caso;– Atividade;
![Page 5: 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](https://reader035.vdocuments.site/reader035/viewer/2022062307/552fc16e497959413d8ed3d2/html5/thumbnails/5.jpg)
CORBAIntrodução
• CORBA começou a ser desenvolvido em 1989, quando um grupo de empresas reuniu-se em uma organização, denominada OMG;
• É um padrão para interoperabilidade entre objetos distribuídos:– permitem que objetos escritos em diferentes linguagens
e, compilados por diferentes compiladores comuniquem-se;
– comunicação através de protocolos padronizados de forma transparente;
![Page 6: 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](https://reader035.vdocuments.site/reader035/viewer/2022062307/552fc16e497959413d8ed3d2/html5/thumbnails/6.jpg)
CORBAIntrodução
• Padrão CORBA é uma especificação aberta, independente de linguagem e fabricante;
• Assegura a possibilidade de se desenvolver sistemas baseados em interação, que incorporam componentes de múltiplas origens;
![Page 7: 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](https://reader035.vdocuments.site/reader035/viewer/2022062307/552fc16e497959413d8ed3d2/html5/thumbnails/7.jpg)
CORBAArquitetura
• OMA:Object Manegement Architecture;
• A OMA agrupa um conjunto de objetos CORBA em serviços e facilidades;
• Object Request Broker (ORB) habilita clientes e objetos a se comunicarem em um ambiente distribuído;
![Page 8: 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](https://reader035.vdocuments.site/reader035/viewer/2022062307/552fc16e497959413d8ed3d2/html5/thumbnails/8.jpg)
CORBAArquitetura
• Há quatro categorias de interfaces:– Objetos de Serviços (Object Services) são interfaces
para serviços gerais;
– Facilidades Comuns (Common Facilities) são interfaces para facilidades horizontais orientadas para usuário;
– Interfaces de Domínio (Domain Interfaces) são interfaces de aplicações de um domínio específico;
– Interfaces de Aplicação (Application Interfaces) são interfaces não padronizadas para aplicações específicas.
![Page 9: 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](https://reader035.vdocuments.site/reader035/viewer/2022062307/552fc16e497959413d8ed3d2/html5/thumbnails/9.jpg)
CORBAArquitetura
![Page 10: 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](https://reader035.vdocuments.site/reader035/viewer/2022062307/552fc16e497959413d8ed3d2/html5/thumbnails/10.jpg)
CORBAArquitetura
client server
proxy
or dynamic invocation
implementation repository object
adapter
ORBORB
skeleton
or dynamic skeleton
client program
interface repository
Request
Replycorecore for A
Servant A
![Page 11: 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](https://reader035.vdocuments.site/reader035/viewer/2022062307/552fc16e497959413d8ed3d2/html5/thumbnails/11.jpg)
CORBAArquitetura - ORB
• É um mecanismo pelo qual objetos fazem ou recebem requisições de outros objetos;
• O cliente não precisa estar ciente:– do mecanismo usado para comunicar ou ativar
um objeto;– de como o objeto é implementado;– onde o objeto está localizado;
• Permite interoperabilidade;
![Page 12: 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](https://reader035.vdocuments.site/reader035/viewer/2022062307/552fc16e497959413d8ed3d2/html5/thumbnails/12.jpg)
CORBAArquitetura - ORB
![Page 13: 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](https://reader035.vdocuments.site/reader035/viewer/2022062307/552fc16e497959413d8ed3d2/html5/thumbnails/13.jpg)
CORBAArquitetura – ORB Parte Cliente
• Client IDL Stubs:– Prove interfaces estáticas para o acesso aos
objetos remotos;– Agem como um proxy para o objeto remoto do
servidor– Gerados a partir de uma IDL;– Fazem marshalling;
![Page 14: 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](https://reader035.vdocuments.site/reader035/viewer/2022062307/552fc16e497959413d8ed3d2/html5/thumbnails/14.jpg)
CORBAArquitetura – ORB Parte Cliente
• Dynamic Invocation Interface (DII):– Permite descobrir métodos de servidores
remotos em tempo de execução;– CORBA define APIs para a localização de
meta-dados que definem as interfaces dos servidores:
• para a geração dos parâmetros,
• para invocação remota, e • para o retorno dos dados;
![Page 15: 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](https://reader035.vdocuments.site/reader035/viewer/2022062307/552fc16e497959413d8ed3d2/html5/thumbnails/15.jpg)
CORBAArquitetura – ORB Parte Cliente
• Interface Repository APIs (IR): – Permitem obter a descrição de todas as
interfaces dos componentes registrados, os métodos que eles suportam, e os parâmetros que eles utilizam;
– É uma base de dados distribuída que contém as definições das interfaces no formato da IDL;
![Page 16: 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](https://reader035.vdocuments.site/reader035/viewer/2022062307/552fc16e497959413d8ed3d2/html5/thumbnails/16.jpg)
CORBAArquitetura – ORB Parte Servidor
• Server IDL Stubs: – fornecem interfaces estáticas para cada serviço
exportado pelo servidor;– Também são criados pelo compilador IDL;– Fazem unMarshalling;
![Page 17: 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](https://reader035.vdocuments.site/reader035/viewer/2022062307/552fc16e497959413d8ed3d2/html5/thumbnails/17.jpg)
CORBAArquitetura – ORB Parte Servidor
• Dynamic Skeleton Interface (DSI): – fornece mecanismos de ligação (binding) em
tempo de execução;– para servidores que necessitam manipular
requisições de objetos que não possuem stubs nem skeletons compilados;
– O DSI do servidor é equivalente ao DII do cliente;
![Page 18: 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](https://reader035.vdocuments.site/reader035/viewer/2022062307/552fc16e497959413d8ed3d2/html5/thumbnails/18.jpg)
CORBAArquitetura – ORB Parte Servidor
• Object Adapter:– localiza-se no topo dos serviços de
comunicação do ORB;– recebe as requisições dos serviços antes dos
objetos do servidor;
• Provê um ambiente de execução:– para a instanciação dos objetos dos servidores;– para a passagem das requisições;
![Page 19: 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](https://reader035.vdocuments.site/reader035/viewer/2022062307/552fc16e497959413d8ed3d2/html5/thumbnails/19.jpg)
CORBAArquitetura – ORB Parte Servidor
• Implementation Repository (IR): – fornece um repositório de informações sobre as
classes que um objeto suporta e os objetos que estão instanciados;
– Utilizado para armazenar informações adicionais associadas com as implementações de cada ORB, entre elas segurança e dados administrativos;
![Page 20: 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](https://reader035.vdocuments.site/reader035/viewer/2022062307/552fc16e497959413d8ed3d2/html5/thumbnails/20.jpg)
CORBAServiços CORBA (CORBAservices)
• Serviço de Nomeação (Naming Service):– Provê capacidade para ligar um nome a um
objeto;– Resolver um nome é determinar o objeto
associado a um determinado nome;
![Page 21: 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](https://reader035.vdocuments.site/reader035/viewer/2022062307/552fc16e497959413d8ed3d2/html5/thumbnails/21.jpg)
CORBAServiços CORBA (CORBAservices)
• Serviço de Evento (Event Service):– Suporta eventos assíncronos (desacoplamento
do produtor e consumidor);– Através de implementações apropriadas de
canais de eventos oferece uma entrega confiável dos eventos;
![Page 22: 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](https://reader035.vdocuments.site/reader035/viewer/2022062307/552fc16e497959413d8ed3d2/html5/thumbnails/22.jpg)
CORBAServiços CORBA (CORBAservices)
• Serviço de Persistência;
• Serviço de Controle de Concorrência;
• Serviço de Consulta;
• Serviço de Segurança;
• Serviço de Tempo;
• ...
![Page 23: 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](https://reader035.vdocuments.site/reader035/viewer/2022062307/552fc16e497959413d8ed3d2/html5/thumbnails/23.jpg)
CORBAIDL e Mapeamento
• linguagem independente;
• OMG IDL é derivada do C++;
• suporta tipos como:– inteiro com ou sem sinal;– tipos enumerados, estruturas, uniões,
seqüências;– exceções;
![Page 24: 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](https://reader035.vdocuments.site/reader035/viewer/2022062307/552fc16e497959413d8ed3d2/html5/thumbnails/24.jpg)
CORBAIDL e Mapeamento
interface Printer {void print ( );
};
interface ColorPrinter: Printer {enum ColorMode {BackAndWhite,
FullColor};void set-color (in ColorMode mode);long numero( );
};
![Page 25: 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](https://reader035.vdocuments.site/reader035/viewer/2022062307/552fc16e497959413d8ed3d2/html5/thumbnails/25.jpg)
CORBAIDL e Mapeamento
• Mapeamento especifica como a IDL pode ser traduzida para outra linguagem;– Em C++ as interfaces IDL são mapeadas para
classes e as operações são mapeadas para funções dessas classes;
• Mapeamentos OMG IDL padronizados:– C, C++, Smalltalk, Cobol, Ada e Java;
![Page 26: 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](https://reader035.vdocuments.site/reader035/viewer/2022062307/552fc16e497959413d8ed3d2/html5/thumbnails/26.jpg)
CORBAEstudo de Caso
• Boas Vindas ao CORBA;
• Código da interface:– BoasVindas.idl;
• Implementação objeto remoto:– Msg_Boas_VindasImpl.java;
• Servidor: servidor.java;
• Cliente: cliente.java;
![Page 27: 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](https://reader035.vdocuments.site/reader035/viewer/2022062307/552fc16e497959413d8ed3d2/html5/thumbnails/27.jpg)
CORBAEstudo de Caso
• Gerar stubs: idlj –fall BoasVindas.idl;– _Msg_Boas_VindasStub.java;– Msg_Boas_Vindas.java;– Msg_Boas_VindasOperations.java;– Msg_Boas_VindasHelper.java;– Msg_Boas_VindasHolder.java;– Msg_Boas_VindasPOA.java;
![Page 28: 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](https://reader035.vdocuments.site/reader035/viewer/2022062307/552fc16e497959413d8ed3d2/html5/thumbnails/28.jpg)
CORBAEstudo de Caso
• Compilar Servidor:– javac BoasVindas\servidor.java;
• Compilar Cliente:– javac cliente.java;
![Page 29: 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](https://reader035.vdocuments.site/reader035/viewer/2022062307/552fc16e497959413d8ed3d2/html5/thumbnails/29.jpg)
CORBAEstudo de Caso
• Executar ORB:– orbd –ORBInitialPort 2000;
• Executar Servidor:– java BoasVindas.servidor –ORBInitialPort
2000;
• Executar Cliente:– java cliente –ORBInitialPort 2000 –
ORBInitialHost localhost;
![Page 30: 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](https://reader035.vdocuments.site/reader035/viewer/2022062307/552fc16e497959413d8ed3d2/html5/thumbnails/30.jpg)
CORBAAtividade
• Testar estudo de caso em diferentes computadores;
• Passar e retornar parâmetro na mensagem;
• Desenvolver aplicação remota:– Soma;– Subtração;– Nome do servidor;
![Page 31: 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](https://reader035.vdocuments.site/reader035/viewer/2022062307/552fc16e497959413d8ed3d2/html5/thumbnails/31.jpg)
DCOMIntrodução
• Distributed Component Object Model;
• Extensão do Component Object Model
protocol (COM);
• Microsoft 1996;
• Aplicações podem ser construídas a
partir de objetos COM localizados em
diferentes máquinas;
![Page 32: 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](https://reader035.vdocuments.site/reader035/viewer/2022062307/552fc16e497959413d8ed3d2/html5/thumbnails/32.jpg)
DCOMArquitetura
Client ComponentComponent
No mesmo processoRápido, chamadas de função direta
Client ComponentComponentCOMCOM
Client Process Server ProcessNa mesma máquinaRápido, IPC
Através de máquinasDCE-RPC baseado no protocolo DCOM COMCOMDCE
RPCClient
Server MachineClient Machine
COMCOM ComponentComponent
![Page 33: 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](https://reader035.vdocuments.site/reader035/viewer/2022062307/552fc16e497959413d8ed3d2/html5/thumbnails/33.jpg)
DCOMArquitetura
COMCOMClientClient
Component
CO
M R
unti
me
ServidorCliente
TCP, UDP
SPX,IPX
Net BUI
CO
M R
unti
me
Proxy
Other Component
![Page 34: 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](https://reader035.vdocuments.site/reader035/viewer/2022062307/552fc16e497959413d8ed3d2/html5/thumbnails/34.jpg)
DCOMArquitetura
![Page 35: 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](https://reader035.vdocuments.site/reader035/viewer/2022062307/552fc16e497959413d8ed3d2/html5/thumbnails/35.jpg)
DCOMArquitetura – Ligação Cliente-Servidor
• Servidor se registra no registro do Windows;– Cliente procura servidor pelo seu GUID;
• Passagem de parâmetro em CoCreateInstanceEx;– Não necessita registro no windows;– Cliente acessa direto o servidor;
![Page 36: 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](https://reader035.vdocuments.site/reader035/viewer/2022062307/552fc16e497959413d8ed3d2/html5/thumbnails/36.jpg)
DCOMEstudo de Caso – Delphi – Servidor
• Criar nova aplicação;
• Criar objeto COM de nome TestDCOM;– adicionar método sendMsg;– criar parâmetro msg, BSTR, in;– criar parâmetro resp, BSTR*, out; retval;
• Clicar no refresh para gerar código;– Gerado arquivo TLB;
• Implementar TTestDCOM.sendMsg;
![Page 37: 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](https://reader035.vdocuments.site/reader035/viewer/2022062307/552fc16e497959413d8ed3d2/html5/thumbnails/37.jpg)
DCOMEstudo de Caso – Delphi – Cliente
• Criar nova aplicação;
• Adicionar no cliente:– TLB do servidor;– uses do TLB e de ActiveX;– vTestDCOM: ITestDCOM;
![Page 38: 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](https://reader035.vdocuments.site/reader035/viewer/2022062307/552fc16e497959413d8ed3d2/html5/thumbnails/38.jpg)
DCOMEstudo de Caso – Delphi – Cliente
• Na criação do form:– CoCreateInstance(CLASS_TestDCOM, nil,
CLSCTX_SERVER, IID_ITestDCOM, vTestDCOM);
• No clique de um botão:– msg:= 'teste';– vTestDCOM.sendMsg(msg, resp);– Form1.Caption := resp;
![Page 39: 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](https://reader035.vdocuments.site/reader035/viewer/2022062307/552fc16e497959413d8ed3d2/html5/thumbnails/39.jpg)
DCOMEstudo de Caso – Execução
• Executar o Servidor;
• Executar o Cliente;
• Testar Mensagens;
• Atividade:– Colocar um edit no cliente e enviar as
mensagens digitadas;