MAC 440/759 - Sistemas de Objetos Distribuídos

Segundo Semestre de 1998

Prof. Francisco Reverbel

. Informações Gerais
. Avisos (Leia os que tiverem uma bola vermelha!)
. Tópicos Tratados em Aula
. Leitura Recomendada
. Bibliografia
. Recursos Adicionais na Internet

[at work icon] Esta página estará em permanente construção até o final do semestre...


Informações Gerais

. Local: IME-USP, bloco B, sala B-6
. Horário: segundas das 8:00 às 9:40 e quintas das 10:00 às 11:40
. Pasta Xerox CAMAT: número 116
. Avaliação: duas provas em classe, trabalho prático
. Primeira prova: 01 de outubro
. Segunda prova: 19 de novembro
. Monitor: Aritanan Borges Garcia Gruber (Pil)
. Horário preferencial: segundas-feiras, das 10 as 11 horas


Avisos

. 14/08/98: A página da disciplina Sistemas de Objetos Distribuídos ministrada no segundo semestre de 1997 está aqui. Olhe à vontade, mas saiba que alguns documentos apontados por essa página já estão obsoletos. Por exemplo: ela referencia a revisão 2.1 da especificação CORBA, em vez de referenciar a revisão 2.2, que é a mais atual.
. 14/08/98: A leitura recomendada está disponível tanto eletronicamente (vide ponteiros abaixo) como em papel (no xerox do CAMAT).
. 17/08/98: O VisiBroker for Java version 3.2 e o VisiBroker for C++ version 3.2 estão instalados na rede do IME, no diretório /usr/local/visibroker. Comece a estudar os exemplos do VisiBroker for Java ou os exemplos do VisiBroker for C++. Faça uma cópia de todo o diretório de exemplos (java_examples ou examples, dependendo da linguagem) na sua área de disco, depois siga as instruções no próprio diretório para gerar e rodar os exemplos.
. 17/08/98: Se você pretende rodar o VisiBroker em seu próprio PC, veja a página de downloads da Inprise.
. 20/08/98: Para rodar o VisiBroker na rede do IME, veja as informações aqui.
. 25/08/98: Atualizada a página de informações operacionais, tendo sido incluídas informações sobre registro de servidores.
. 03/09/98: Está disponível a página do projeto.
. 03/09/98: A primeira prova foi marcada para 01 de outubro.
. 03/09/98: Incluí na bibliografia um novo texto (disponível eletronicamente), sobre o mapeamento de IDL para C++.
. 21/09/98: Não darei aula na próxima quinta-feira (24/09).
. 28/09/98: O prazo de entrega da primeira etapa do projeto acaba hoje. Veja aqui o que voce deve entregar.
. 19/10/98: Está disponível o arquivo IDL para as etapas 2 e 3 do projeto.
. 21/10/98: Aqui está a documentação do servidor MySQL e do seu driver JDBC.
. 21/10/98: Foram revistos os prazos de entrega das etapas 2 e 3 do projeto.
. 23/10/98: Veja aqui como usar o servidor MySQL, que já está rodando (graças ao Adriano)!
. 23/10/98: Um exemplo de utilização do driver JDBC está disponível aqui.
. 05/11/98: Incluídas algumas dicas de última hora sobre a etapa 2 do projeto.
. 17/11/98: Atualizada a relação de tópicos tratados em aula, a leitura recomendada (com inclusão de material sobre serviços de nomes e de eventos, COM e RMI) e a bibliografia (com inclusão de livros sobre COM).
. 17/11/98: Atualizada a pagina do projeto, com inclusão de texto sobre a etapa 3.
. 01/12/98: Veja aqui as notas das provas.
. 01/12/98: Prazo de entrega da terceira etapa do projeto: 7 de dezembro.
. 01/12/98: Cada equipe deve marcar uma hora para apresentar o seu trabalho para o professor. Se você fez o projeto em dupla, não se esqueça que toda a equipe deve comparecer à apresentação. As apresentações serão agendadas para os dias 8 e 9 de dezembro. Quem não puder nessas datas e precisar antecipar a apresentação de sua equipe, contate o professor.
. 01/12/98: Reunião final da classe (teste conjunto dos sistemas das várias equipes): 10 de dezembro, às 10 horas.
. 03/12/98: Melhorei o texto sobre a geração da IOR na etapa 3 do projeto. A versão anterior desse texto estava muito confusa.
. 10/12/98: A prova substitutiva será no dia 15/12 (terça-feira), às 10:00, na sala 267 do bloco A. Podem fazê-la os alunos que satisfazem as três condições abaixo:
  1. tem média de provas MP < 5, onde MP = (P1 + 2*P2)/3
  2. tem nota maior ou igual a 3 na prova P1 ou na prova P2
  3. entregaram todas as etapas do projeto.
. 18/12/98: As notas finais estão aqui. Boas férias!!!


Tópicos Tratados em Aula

. 03/08/98: (Aula só com os alunos de graduação.) Apresentação. Visão histórica dos sistemas de objetos distribuídos e sua relação com sistemas three-tier.
. 10/08/98: Apresentação. Revisão de RPC. Introdução à CORBA. Os componentes de um ORB. Figuras (vimos até a segunda figura deste lote).
. 13/08/98: Os componentes de um ORB (continuação). Introdução à IDL. Exemplo de um cliente CORBA escrito em Java. Leitura recomendada.
. 17/08/98: Exemplo de um servidor CORBA escrito em Java.
. 20/08/98: Conversão de referências a objetos em strings e vice-versa. Exemplo de cliente CORBA que (em vez de chamar bind) usa uma referência "stringficada" para conectar-se ao servidor. Ativação de implementações (servidores) e de objetos (serventes). Leitura recomendada.
. 24/08/98: Registro de servidores no repositório de implementações: informações operacionais. Exemplo de cliente e servidor CORBA escrito em C++.
. 27/08/98: Tipos de dados em IDL: tipos básicos, tipos definidos pelo usuário, tipos parametrizados, vetores e matrizes. As interfaces do ORB: CORBA::ORB e CORBA::Object. Object references em C++: os tipos _ptr e _var. Transparências.
. 31/08/98: A interface (mal padronizada) CORBA::BOA. Geração e interpretação de object references. Ativação de objetos no "BOA proprietário" do VisiBroker. Transparências (vimos até a transparência 14 deste lote).
. 03/09/98: Conversa sobre o projeto do curso. Exemplo de servidor com ativação dinâmica de objetos: o exemplo ODB do VisiBroker (em Java, em C++).
. 14/09/98: Implementação de interfaces IDL: a abordagem por herança e a abordagem por delegação (tie approach). Transparências 15 a 31 do lote começado na aula 7. O exemplo Bank (using TIE) do VisiBroker. Leitura recomendada.
. 17/09/98: Revisão geral de redes. Transparências. Funcionamento do ORB: como é feita a ligação (binding) de object references a serventes. Leitura recomendada.
. 21/09/98: Discussão de questões/dúvidas sobre o projeto do curso. Continuação do assunto da aula anterior (binding de object references a serventes).
. 28/09/98: Applets Java como clientes CORBA, o Gatekeeper do VisiBroker, ORB portability interfaces.
. 01/10/98: Primeira prova.
. 05/10/98: O naming service. Leitura recomendada.
. 08/10/98: Discussão sobre a segunda etapa do projeto.
. 19/10/98: O event service. Leitura recomendada. Introdução ao COM e pré-requisitos de C++ (virtual member functions, layout de objetos C++ na memória, vtables).
. 26/10/98: COM: objetos e vtable interfaces, Microsoft IDL, GUIDs, classes, a interface IUnknown.
. 29/10/98: COM: tipos de servidores, a biblioteca COM, criação e iniciação de objetos, dispinterfaces, automação, persistência de objetos, monikers.
. 09/11/98: Discussão sobre dificuldades com a segunda etapa do projeto e dicas de última hora. COM: reutilização de implementações de objetos através de inclusão (containment) e de agregação. Comparação entre CORBA e DCOM. Leitura recomendada.
. 12/11/98: Java RMI. Exemplo de servidor e cliente RMI.
. 16/11/98: Java RMI. Exemplo de "servidor extensível" que executa tarefas arbitrárias recebidas dos clientes como "objetos tarefa". Leitura recomendada. Discussão sobre a terceira etapa do projeto.
. 19/11/98: Segunda prova.


Leitura Recomendada

. Em 13/08/97:

. Em 20/08/97:

. Em 14/09/97:

. Em 17/09/97:

. Em 05/10/97:
  • Naming Service Specification, o capítulo 3 da especificação CORBAservices. A íntegra da especificação CORBAservices (que é muito longa) encontra-se aqui.

. Em 19/10/97:

. Em 09/11/97:
  • David Chappel, Understanding ActiveX and OLE, Microsoft Press, 1996. Os primeiros quatro capítulos deste livro estão disponíveis no xerox do CAMAT:

    • Chapter One -- Introducing ActiveX and OLE
    • Chapter Two -- The Component Object Model
    • Chapter Three -- Marshaling and Type Information
    • Chapter Four -- Automation

    O melhor capítulo é o segundo, que explica com algum detalhe o que é o COM. (O capítulo 1 apresenta uma introdução ao COM e uma visão geral de ActiveX e OLE, infelizmente misturadas com um bocado de marketing.)

. Em 16/11/98:


Bibliografia

[at work icon] Em construção...

CORBA

. As principais especificações do OMG:
Atenção: esses documentos são longos. Em vez de imprimir tudo, visualize o pdf e selecione o(s) capítulo(s) que você deseja imprimir.

. Manuais do VisiBroker:
Os mais úteis são (nesta ordem) o Programmer's Guide e o Reference Manual para a linguagem que você estiver usando.

. Livros sobre programação CORBA em Java:

. Livros sobre programação CORBA em C++:
  • Sean Baker, CORBA Distributed Objects Using Orbix, ACM Press/Addison-Wesley, 1997, ISBN 0-201-92475-7.
  • Andreas Vogel, Maira Benjamin, Bhaskar Vasudevan, Ted Villalba e Keith Duddy, C++ Programming with CORBA, John Wiley & Sons, 1998, ISBN 0-471-28306-1.
  • Michi Henning e Steve Vinoski, Advanced CORBA Programming with C++, Addison-Wesley, 1999, ISBN 0-201-37927-9.
    • Acredito que este vai ser o melhor texto sobre programação CORBA em C++. O livro ainda não foi lançado, mas um de seus capítulos (Basic IDL-to-C++ Mapping) está disponível aqui.

. Outros livros sobre CORBA:

COM/DCOM

. David Chappel, Understanding ActiveX and OLE, Microsoft Press, 1996.
. Dale Rogerson, Inside COM, Microsoft Press, 1977, ISBN 1-57231-349-8.


Recursos Adicionais na Internet

. Home page do OMG
. Página CORBA do Los Alamos National Laboratory
. Página CORBA de Doug Schmidt
. O newsgroup comp.object.corba. Para acessá-lo via Deja News, clique aqui.
. Arquivo da lista de discussão corba-dev, mantida por Alan Pope


HTML 3.2 Checked! Last modified: Fri Dec 18 14:40:01 EDT 1998
Francisco Reverbel
reverbel at ime.usp.br