Pré-requisitos

     Sistemas Operacionais I (Obrigatório)
     Conceitos sobre Sistemas Operacionais e Redes de Computadores.
     Programação C, C++ e Java. Noções de Orientação a Objetos.
     Conceitos sobre Troca de Mensagens


Ementa:

Serviços Básicos: diretório, descoberta, localização e gerenciamento de recursos, segurança, transações, e qualidade de serviço (QoS). Suporte para sistemas distribuídos (middleware)objetos distribuídos, orientado a mensagens (message oriented middleware, MOM), sistema de eventos distribuídos. Suporte para sistemas ubíquos. Descrição de sistemas distribuídos; requisitos não-funcionais. Mecanismos de composição e adaptação dinâmica em middleware e aplicações distribuídas.

Tópicos a serem abrodados

TCP/IP
1.      Arquitetura, Quadros básicos do IP, TCP e UDP
2.      Gateways, Roteamento Estático, Roteamento Dinâmico
3.      Protocolos de Roteamento: RIP, EGP, BGP e OSPF
4.      Redes classe A, B, C e D (IP-Multicasting), Subredes
5.      DNS - Serviços de Nomes Distribuídos
6.      Configuração típica de uma internet em ambientes DOS, Windows, UNIX e VM

Programação por sockets
1.      Unix, Windows, Java, Multicast

Sistemas Distribuídos

1.      conceitosbásicos
2.      arquiteturas
3.      sistemasde arquivos distribuídos
4.      modelocliente servidor
5.      sincronização
6.      tempo
7.      sistemasoperacionais distribuídos

Serviços para Sistemas Distribuídos
Serviços Básicos: diretório, descoberta, localização e gerenciamento de recursos, segurança, transações, e qualidade de serviço (QoS). Suporte para sistemas distribuídos (middleware)objetos distribuídos, orientado a mensagens (message oriented middleware, MOM), sistema de eventos distribuídos. Suporte para sistemas ubíquos. Descrição de sistemas distribuídos; requisitos não-funcionais. Mecanismos de composição e adaptação dinâmica em middleware e aplicações distribuídas.

Middlewarepara chamadas e invocações remotas
1.      RPC e RMI

Middlewarepara objetos e componentes distribuídos
1.      CORBA, DCOM, Java Beans e EJB

Mecanismos para programação Web
1.      CGI, Aplets e Servlets

Padrões para transporte de informações
1.      XDR, XML


Bibliografia:

·        A. Tanembaum and M. van Steen, Distributed Systems: Principles and Paradigms, Prentice Hall, 2002.
·        G. Coulouris, J. Dollimore and T. KindbergDistributed Systems: Concepts and Design, Addison Wesley, 3rd Edition, 2001.
·        D. Lea, Concurrent Programming in Java: Design Principles and Patterns, 2nd Edition, The Java Series, Addison Wesley, 2000.
·        E. R. Harold, Java Network Programming, O'Reilly, 2000.
·        M. Ben-Ari, Principles of Concurrent Programming, Englewood Cliffs, NJ, Pretice Hall, 1982.
·        M. Raynal, Distributed Algorithms and Protocols, John Wiley & Sons, 1988.
·        K. P. Birman, Building Secure and Reliable Network Applications, Manning Publications Co., 1996.
·        D. Schmidt, M. Stal, H. Rohnert and F. Buschmann, “Pattern-Oriented Software Architecture - Patterns for Concurrent and Networked Objects”, Volume 2, John Wiley & Sons, 2000.
·        O. Nierstrasz and D. Tsichritzis, Object-oriented Software Composition, Prentice-Hall, 1995.