Programação de Redes
1.2005
Tópicos
Avançados em Processamento Paralelo e Distribuído I
Horário: 2a
feira, das 9 às 13 na sala 232 (aulas começaram no dia 14/3/2005) 
Avisos 
24/05/2005      inclusão da
apresentação do Prof Nikolaos Tsarmpopoulos sobre redes ad-hoc em malha
23/05/2005      inclusão do material
de Timothy Roscoe do SBRC/WRMP em Fortaleza (referências 12 e 13).
23/04/2005:     inclusão de
material prático sobre uso de Planet Lab.
4/04/2005:       indicação de
material para discussão inicial de Planet Lab.
29/03/2005:     Para adquirir
experiência em programação usando sockets, solicita-se fazer os deveres de casa
("homeworks") 2 e 3 do curso de Hollinger. Dever no. 2 envolve
implementar um servidor procurador ("proxy") para HTTP. O enunciado
se encontra aqui,
e o prazo de entrega é 15/4. Dever no. 3 trata de um servidor TFTP, com o
enunciado aqui,
e prazo de entrega em 30/4. 
21/03/2005:     Recomenda-se
fortemente a participação do SBRC2005, a ser realizado em Fortaleza entre 9 e
13/5. Haverá um tutorial sobre PlanetLab dado por Timothy Roscoe da Intel
Research, um dos seus criadores. (v. www.sbrc2005.ufc.br)
Objetivos 
 - Aquisição de conhecimentos conceituais e
     práticos relativos ao desenvolvimento de software para ambiente de redes,
     incluindo protocolos de suporte e de aplicação. Será suposto prévio
     conhecimento de programação em linguagens como C, C++ e Java.
 
Tópicos 
 - Apresentação do programa (14/3)
 
 - Programação distribuído usando sockets com
     IPv4 e IPv6 (introdução a sockets, 21/3 e 28/3). Material usado veio de
     várias fontes, inclusive "Beej's Guide to Network Programming Using
     Internet Sockets" e "Curso sobre Programação de Redes do prof
     David Hollinger" (v. bibliografia abaixo), especialmente as
     transparências "tcpsock.ppt",
     "multiplex.ppt",  "client_server.ppt"e
     "inetd.ppt".)
 
 - O ambiente PlanetLab (começa em 4/4).
     Material dos referências 7 e 10 da lista
     www (abaixo), com transparências do curso de Peterson (ref 5: os arquivos overview.pdf
     e arch.pdf)
     e de Roscoe (roscoe-2003.pdf). Discussão de
     exercícios de programação no ambiente Planet Lab (18/4) baseada nas
     transparências de Roscoe (2ª aula da referência
     11) e especialmente no primeiro exercício.
     
 
 - Web services
 
 - Desenvolvimento de protocolos de suporte
 
Bibliografia (será
complementada depois)
Livros 
-         
Stevens, W.R. Unix Network Programming,
Prentice-Hall, 1990 (2a edição com 2 vols,
1998 e 1999; 3ª edição do Vol 1, com co-autores Bill Fenner e Andrew Rudoff,
2003 ). 
(capítulo sobre Berkeley Sockets disponível no Xerox da entrada do prédio novo)
Websites do autor sobre seus livros, incluindo o código dos exemplos:
1ª edição: www.kohala.com/start/unp.html
2ª edição, vol 1: www.kohala.com/start/unpv12e.html
2ª edição, vol 2: www.kohala.com/start/unpv22e/unpv22e.html
WWW 
 - www.planet-lab.org          Planet Lab - contém uma grande
     riqueza de informações
 
 - www.w3.org/2002/ws      Web services
 
 - www.ecst.csuchico.edu/~beej/guide/net/  Beej's Guide to Network Programming
     Using Internet Sockets
 
 - www.cs.rpi.edu/~hollingd/netprog2002  Curso sobre Programação de Redes do prof
     David Hollinger (RPI) 
 
 - http://www.cs.princeton.edu/courses/archive/fall03/cs597B/
     Curso de Peterson sobre Planetary-scale services
 
 - Intel Outlines Strategy For Making The
     Internet Smarter, Safer, More Reliable And Useful Press
     Release, September 9, 2004, Intel. 
 
 - A Blueprint for Introducing Disruptive
     Technology into the Internet. Larry Peterson, Tom Anderson,
     David Culler, and Timothy Roscoe. HotNets 2002.
 
 - A Note on Distributed Computing.
     Samuel C. Kendall, Jim Waldo, Ann Wollrath and Geoff Wyant. Sun
     Microsystems Technical Report TR-94-29, November 1994.
 
 - Hints for Computer System Design.
     Butler W. Lampson. CM Operating Systems Rev. 15, 5, October 1983.
 
 - Operating
     System Support for Planetary-Scale Network Services , Andy Bavier, Mic
     Bowman, Brent Chun, David Culler, Scott Karlin, Steve Muir, Larry
     Peterson, Timothy Roscoe, Tammo Spalink, Mike Wawrzoniak
 
 - http://cs199.planet-lab.org.  Curso na UC Berkeley sobre "
     Wide Area Application Design, Deployment,
     and Management", ministrado por Timothy Roscoe e Brent Chun.
 
 - Palestra de Timothy
     Roscoe no SBRC/WRNP sobre virtualização
     de redes.
 
 - Tutorial de Timothy
     Roscoe no SBRC sobre Planet Lab. Versões 1/página e 3/página.
 
Modificada em 24/5/2005