CORBA Apresentação do Padrão CORBA Maurício Maron Mendes Ramiro Pereira de Magalhães
CORBA Antes do Corba - Aplicações monolíticas Rodavam em um mainframe, sendo que os usuários utilizavam “terminais burros” para executar as aplicações. O processamento era totalmente feito no mainframe. - Aplicações cliente-servidor Popularizaram-se na década de 90. A aplicação cliente era dotada da interface com o usuário e regras de negócio e o servidor da persistência. - Aplicações 3+-camadas (n-camadas) Está se popularizando principalmente para o desenvolvimento de sistemas de grande porte, distribuindo-o em, pelo menos, 3 camadas: interface, negócio e persistência.
CORBA Exemplo de Aplicação Multicamada
CORBA Vantagens - Excelente separação entre as interfaces com usuário e a lógica do sistema proporciona facilidades de mudanças caso haja alguma Redefinição de estratégia de armazenamento (afetará pouco as camadas intermediárias e nada as camadas-cliente) - Mudanças nas implementações dos objetos podem não afetar as interfaces CORBA. - Faz uso de técnicas já conhecidas e praticadas por programadores: encapsulamento, polimorfismo, reuso... -Permite utilizar linguagens de programação mais adequadas para o desenvolvimento de cada sistema isoladamente. - Permite especialização de equipes de desenvolvimento, reduzindo custos no desenvolvimento do sistema.
CORBA Considerações Vale a pena desenvolver minha aplicação com CORBA? - Você dispõe de recursos (monetários e humanos)? Tempo? - Qual o tamanho do seu sistema? - Várias pessoas vão acessá-lo ao mesmo tempo? Este acesso exigirá muito do banco de dados? E da camada de negócios? - Como as aplicações clientes vão estar se conectando? - Você pretende reutilizar seu sistema, ou vendê-lo para vários consumidores (que usam sistemas operacionais diferentes)? - Você é capaz de manter seus dados seguros de ataques?
CORBA Como funciona
CORBA Arquitetura Básica CORBA
CORBA Stub IDL Para acessar uma operação sobre um objeto, o cliente precisa chamar e estar estaticamente ligado a um stub correspondente; A interface stub conduz o ORB direto para o domínio de programação da aplicação: o cliente interage com objetos servidores (remotos) chamando suas operações como se tivessem chamando operações de objetos locais.
CORBA ORB (Object Request Broker) Abrange toda a infraestrutura de comunicação necessária para identificar e localizar objetos, tratar o gerenciamento de conexão e a entrega dos dados; A funcionalidade básica fornecida pelo ORB consiste em passar os pedidos dos clientes para as implementações dos objetos em que eles são chamados; Um ORB usa uma referência de objeto para identificar e localizar objetos, de forma que ele possa direcionar os pedidos para ele. Se o objeto referenciado existe, o ORB permite que o dono de uma referência de objeto peça serviços a ele.
CORBA Esqueleto IDL Para qualquer chamada, seja via stub ou via invocação dinâmica, depois de passar pelo ORB, o "pacote" com os argumentos enviados pelo cliente chega ao Adaptador de Objetos e é em seguida "aberto" através de um skeleton no lado do servidor. O skeleton recria a requisição em seu próprio espaço de endereçamento; As invocações passam através do skeleton vindas do Adaptador de Objetos em direção à implementação do objeto (servidor); as solicitações voltam pela rotina de retorno correspondente.
CORBA Códigos-fonte - Definição IDL interface objeto_exemplo{ void metodo_do_objeto(in Boolean a); } - Utilização do Objeto objeto_exemplo *x = objeto_exemplo::_bind(“meu_obj_exemplo”); x->metodo_do_objeto (0);
CORBA Links