Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouEloah Barros Alterado mais de 10 anos atrás
1
Programa de Pós-Graduação Lato Sensu MBA em Gestão de Software
Sistemas e Objetos Distribuídos Aula 04: Objetos Distribuídos com Java RMI e CORBA Visão Prática Prof. Dr. Fábio M. Costa 28/06/08
2
Roteiro Arquitetura geral da aplicação-exemplo Descrição da implementação em JavaRMI Descrição da implementação em CORBA Demonstração da execução Fazer pequenas extensões e demonstrar o processo de compilação e construção das aplicações
3
Arquitetura Geral da Aplicação em Java
Cliente-servidor Com servidor centralizado Um objeto remoto apenas: Biblioteca Demais objetos são locais
4
Aplicação-exemplo: Classes
5
Arquitetura inicial: Centralizada
Livro Livro Livro Usuário Usuário Cliente Biblioteca Usuário Empréstimo Empréstimo Processo Cliente Empréstimo Processo Servidor
6
Demonstração Compilar todos os arquivos (javac) Iniciar o rmiregistry Iniciar o servidor Iniciar os clientes Discutir as políticas de segurança e a forma de executar a aplicação a partir da linha de comando
7
Arquitetura Geral da Aplicação em CORBA
Cliente-servidor Com servidor centralizado Um objeto remoto apenas: Biblioteca Demais objetos são locais (value types)
8
Exemplo: Biblioteca
9
Elementos da Definição de Interfaces em CORBA IDL
10
Definição de Tipos em CORBA IDL
typedef struct _Address { string logradouro; short numero; string complemento; string bairro; string cidade; } Address; typedef sequence<Address> AddressList; interface Usuario { ... }; Tipos estruturados Tipos Atômicos Tipo de Objeto
11
Módulos em CORBA IDL Módulos module Library {
ttypedef struct _Address { string logradouro; short numero; string complemento; string bairro; string cidade; } Address; }; module Empresa { typedef struct _Address { string caixaPostal; Módulos Library::Address Empresa::Address
12
Objetos de CORBA: Atributos
interface Biblioteca { readonly attribute string politica; attribute long num_livros; ... }; interface Usuario { readonly attribute string nome; attribute Address endereço; Clientes não podem mudar o valor Atributos mutáveis Tipo do Atributo Nome do Atributo
13
Objetos de CORBA: Operações
Categoria de Parâmetro typedef sequence<Emprestimo> ListaDeEmprestimos; interface Biblioteca { ... void emprestaLivro(in string titulo, in string usuario); ListaDeEmprestimos visualizaEmprestimos(); }; Lista de Parâmetros Tipos de Retorno Tipo do parâmetro Nome da operação (usado em requisições) Nome do Parâmetro
14
Requisições de Objeto Requisições são definidas por objetos clientes
Uma requisição consiste de: uma referência ao objeto servidor o nome da operação requisitada argumentos da requisição (parâmetros reais) informação de contexto Requisições são executadas em modo síncrono (bloqueante) Requisições podem ser definidas de duas formas: estaticamente dinamicamente
15
Objetos CORBA: Exceções
Exceções genéricas (ex.: rede fora do ar, ref. de objeto inválida, esgotou a memória) Exceções específicas de determinados tipos Nome da Exceção Dados da Exceção exception LivroEmprestado{sequence<Date> free;}; interface Biblioteca { ... void emprestaLivro(in Date d) raises(LivroEmprestado); }; Operações declaram as exceções que podem gerar
16
Objetos de CORBA: Sub-tipos
Possui Super-tipo implícito: Object Atributos Herdados por Biblioteca interface Instituicao { readonly attribute string nome; attribute Address endereco; }; interface Biblioteca : Instituicao { exception LivroEmprestado{...}; readonly attribute string politica; attribute long num_livros; void emprestaLivro(in Date d) raises(LivroEmprestado); Supertipo
17
Demonstração Compilar todos os arquivos (javac) Iniciar o servidor de nomes e disponibilizar a referência de objeto para ele Iniciar o servidor (windows) Iniciar os clientes (linux)
18
Exercícios Aula 03 1: Identificar os serviços e transparências de distribuição que já estejam presentes na aplicação-exemplo 2: Propor extensões às funcionalidades da aplicação novos métodos remotos (apenas a descrição geral) 3: Propor uma arquitetura distribuída para a aplicação lado servidor distribuído em máquinas diferentes explicar os motivos para escolha da arquitetura distribuída 4: Analisar os requisitos da aplicação quanto a: outros serviços de suporte a distribuição outras transparências de distribuição 5: Em geral, quais os problemas advindos da existência de vários clientes fazendo acesso simultâneo a um mesmo servidor? Como esse problema geralmente é tratado?
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.