integrações de aplicações empresariais prof. paulo fernando da silva unc – universidade do...

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 a Web

Upload: internet

Post on 22-Apr-2015

111 views

Category:

Documents


0 download

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

DCOMEstudo de Caso – Execução

• Executar o Servidor;

• Executar o Cliente;

• Testar Mensagens;

• Atividade:– Colocar um edit no cliente e enviar as

mensagens digitadas;