Escolar Documentos
Profissional Documentos
Cultura Documentos
1
Conteúdo
•Sistemas Distribuídos
•O que é CORBA
• Orientação por Objetos
• Arquitetura CORBA
• IDL
• Exemplo de Cliente
• Exemplo de Servidor
• Conclusões
2
Sistemas Distribuídos
Definição
Sistema distribuído é aquele que
executa em um conjunto de
máquinas sem memória
compartilhada, máquinas estas que,
mesmo assim, aparecem como um
único computador para seus
usuários (Tanenbaum)
3
Projeto de Sistemas Distribuídos
6
Utilidade de Corba
Iteração de diferentes
fabricantes deste mainframe até
minicomputadores
É o middleware de aplicações
robusta
Suporta escalabilidade
Suporta tolerância a falhas
7
Integração Corba
O
Java Objeto R
Windows A O
B Objeto Java
R OS/390
B D
O
C++ Objeto R
Window B B
s O
Objeto Cobol II
R
B E OS/390
C++ O
Objeto R
Unix C B
8
Orientação por Objetos
Características dos Objetos
Identidade Operação
Polimorfismo Operação
Herança Operação
Características da Tecnologia
Abstração
Encapsulamento
Compartilhamento
9
Objetos e Classes
Uma classe é usada para descrever
um tipo de objeto
Computadores
Objetos são instâncias de classes
Pentium
Power Mac
RS6000
Alpha Digital
10
Atributos e Métodos
Atributos
Dados armazenados com o objeto ou
classe (registro de dados)
Propriedades do Objetos
podem ser encapsuladas
Métodos
Instâncias de procedimentos de
funções
Modela o comportamento dos objetos
11
Exemplo de Classe e Objeto
12
Serviços CORBA
13
Serviços CORBA
14
Serviços CORBA cont.
15
Arquitetura CORBA
16
Modelo de Comunicação CORBA
17
Cliente de um Objeto
Tem acesso a uma referência do objeto para
o objeto
invoca operações no objeto
Conhece apenas a estrutura lógica do objeto
e seu comportamento
É um processo(programa) que inicia pedidos
em objetos
Comunicam-se diretamente com o ORB
Não conhecimento da execução do Objeto
18
Pedido emitido pelo cliente
19
Execução do Objeto
20
Interface Definition Language - IDL
21
Exemplo de IDL
// Count.idl
module Counter
{
interface Count
{ attribute long sum;
long increment();
};
};
22
Tipos Primitivos de IDL x Java
IDL Java
boolean boolean
char char
wchar char
octet byte
string java.lang.String
wstring java.lang.String
short/unsigned short short
long/unsigned long int
long long/unsigned long long long
float float
double double
23
Mapeamento IDL x JAVA
IDL exception
module clienteApp {
exception EmailInvalido {
string msg;
long rc;
};
interface IContainerCliente {
void validaEmail (in string email)
raises
(EmailInvalido);
};
};
24
Mapeamento IDL x JAVA
IDL enum
module clienteApp {
enum TipoCartao {
Visa,
American_Express,
Credicard,
MasterCard
};
interface ITipoCartao {
TipoCartao getTipoCartao(in long tipo);
};
};
25
Mapeamento IDL x JAVA
IDL struct
module ClienteApp {
struct ClienteStruct {
string email;
wstring nomeCliente;
long long telefone;
short codigoCartao;
double numeroCartao;
char sexo;
float salario;
long vencimentoCartao;
octet idade;
boolean indicativoEspecial;
};
interface IContainerCliente {
void setCliente(in ClienteStruct clienteStruct)
};
};
26
Mapeamento IDL x JAVA
IDL array e IDL sequence
module clienteApp {
typedef string ArrayCliente[5];
typedef sequence<string> SequenceCliente;
// typedef sequence<string,5> SequenceCliente;
interface IContainerCliente {
ArrayCliente getArray();
SequenceCliente getSequenceCliente();
};
};
Java
String[] getArray() {...};
String[] getSequenceCliente() {...};
27
Implementação do Objeto
28
Estrutura de Imp. do Objeto
29
Exemplo de Impl de Objeto
class CountImpl extends Counter._CountImplBase
{private int sum;
// Constructors
CountImpl(String name)
{ super(name);
System.out.println("Count Object Created");
sum = 0; }
// get sum
public int sum()
{ return sum; }
// set sum
public void sum(int val)
{ sum = val; }
}
30
Mecânica de Execução - Cliente
31
Exemplo do Cliente
org.omg.CORBA.ORB orb =
org.omg.CORBA.ORB.init(args, null);
System.out.println("Incrementing");
for (int i = 0 ; i < 1000 ; i++ )
{ counter.increment();}
32
Mecânica de Execução - Objeto
O ORB encontra o código apropriado da execução,
transmite os parâmetros e transfere o controle de
execução do objeto através do IDL
33
Mecânica de Execução - Componentes
A informação da execução do objeto é fornecida na instalação e
armazenada no repositório da execução
34
Adaptador de Objetos (Object Adapter)
Geração e interpretação de referências
para objetos
Invocação de métodos
Segurança de Interações
Ativação e desativação de objetos e
implementações
Mapeamento de referência a objetos para a
implementação correspondente
Registro de implementações de funções
executadas pelo ORB
35
Exemplo de Instância de Objeto
org.omg.CORBA.ORB orb =
org.omg.CORBA.ORB.init(args, null);
// Initialize the BOA
org.omg.CORBA.BOA boa = orb.BOA_init();
// Create the Count object
CountImpl count = new CountImpl("My Count");
// Export to the ORB the newly created object
boa.obj_is_ready(count);
// Ready to service requests
boa.impl_is_ready();
36
Conclusões I
Muitas organizações adotaram Tecnologia de Objetos para
ganhar aumentos na produtividade do desenvolvimento do
software. Isto significa reusar o código
A maioria de companhias começaram desenvolver algum tipo
da biblioteca componente OO
Microsoft é a maior fonte de classes de OO
O modelo componente de JavaBean é mais popular do que o
modelo de ActiveX neste momento para o desenvolvimento de
componentes em geral.
O padrão da OMG CORBA é o ORB preferido para o
middleware de OO.
DCOM é usado somente sobre a metade do que usam OO.
Dos que usam CORBA, 61% estão satisfeitos.
37
Conclusões II
38
Uso de Linguagens OO
39