A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Programa de Pós-Graduação Lato Sensu MBA em Gestão de Software

Apresentações semelhantes


Apresentação em tema: "Programa de Pós-Graduação Lato Sensu MBA em Gestão de Software"— Transcrição da apresentação:

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?


Carregar ppt "Programa de Pós-Graduação Lato Sensu MBA em Gestão de Software"

Apresentações semelhantes


Anúncios Google