Aplicações Distribuídas na Internet, 2005/2006
Índice
Descrição e objectivos da disciplina
Nos últimos anos, a World Wide Web criou oportunidades únicas para
o desenvolvimento de aplicações. A gama de websites
existentes actualmente é muito vasta e vai desde uma simples página pessoal
com informação estática, até a sofisticados motores de pesquisa
que manipulam bases de dados gigantescas.
No meio da gama, existem websites para suportar trabalho
colaborativo, comunidades virtuais, e comércio electrónico, entre outros.
As aplicações na Web requerem a integração de várias tecnologias que devem
funcionar de modo fiável 24 horas por dia, 7 dias por semana. Para
construir uma aplicação Web com sucesso, tem de se saber um pouco
sobre a configuração dos servidores Web, um pouco sobre sistemas de
bases de dados relacionais e SQL, ser fluente numa linguagem de scripting,
saber o básico sobre o protocolo HTTP, saber a sintaxe do HTML,
e saber um pouco sobre user-interface design.
Nesta disciplina, os alunos irão aprender um pouco de tudo isto.
Especificamente, ao terminar a disciplina os alunos deverão
- ser capazes de distinguir entre bons e maus websites.
- ser capazes de construir um website suportado por uma base de dados
relacional.
- ter capacidade técnica para construir websites que se possam comparar
em termos de qualidade aos melhores websites existentes actualmente na
Internet.
- ter a noção de como são feitos os motores de pesquisa da Internet
(ex: Google).
- ter noções sobre aspectos de segurança e comércio electrónico.
- ter noções sobre aspectos de escalabilidade e desempenho na web.
- ter noções sobre XML.
- ter noções sobre Web Services.
A disciplina é inspirada numa disciplina chamada Software Engineering for
Internet Applications (ver http://philip.greenspun.com/teaching/6171/2003-fall/) que
é leccionada no departamento de computer science do MIT.
Professor
nome |
e-mail |
horário de dúvidas |
Fernando Lobo |
|
3ª das 15:30-19:30 Ed. 1 - sala 1.64 |
Mailing list
Mailing list para dúvidas
acerca da disciplina.
Requisitos
Ter conhecimentos sólidos de Programação, Estruturas de Dados,
e Bases de Dados. Recomenda-se também que tenham conhecimentos
sobre Sistemas Operativos e Redes de Computadores.
Quem estiver mais enferrugado a base de dados deve consultar
a página da disciplina de Base de Dados.
Bibliografia
O material de estudo desta disciplina encontra-se espalhado por vários
livros. Deste modo, não vos vou recomendar nenhum livro de texto
em especial. Deixo no entanto, alguns livros que podem ser bastante
úteis e que cobrem parte da matéria que iremos abordar.
- Web Database Application with PHP and MySQL (2nd edition)
Hugh E. Williams & David Lane
O'Reilly, 2004.
- Web Services: Aplicações Distribuídas sobre Protocolos Internet
Carlos J. Lopes & José C. Ramalho
FCA, 2005.
- Building Web Services with Java : Making Sense of XML, SOAP, WSDL, and UDDI
(2nd Edition)
Steve Graham et. al.
Sams Publishing, 2004
Existe um livro totalmente online que também recomendo,
Outros links uteis:
Regras de avaliação
A frequência da disciplina é baseada em 2 trabalhos práticos.
Para serem admitidos a exame devem ter mais do que 7.0 valores
em ambos os trabalhos.
Caso obtenham frequência à disciplina, a nota final é a média
ponderada das notas dos trabalhos (80% para o primeiro, 20% para o segundo).
Se a nota resultante for maior ou igual a 10 estão passados.
Caso contrário têm de ir a exame.
Programa
- Conceitos introdutórios, introdução à WWW.
- A Web como modelo cliente-servidor.
- Websites estáticos e websites dinâmicos.
- Transacções em bases de dados.
- Autenticação, cookies, sessões.
- Servidores Web.
- Scripting do lado do servidor.
- Scripting do lado do cliente.
- Design de páginas, navegação e user-interface design.
- Aspectos de segurança e comércio electrónico.
- Sites de grande dimensão, load balancing.
- XML.
- Web Services.
Enunciado dos trabalhos
Documentação dada nas aulas
- Introdução à World Wide Web (PDF)
- Perspectiva histórica da World Wide Web (PDF)
- Noções básicas de HTML (HTML)
- Protocolo HTTP (PDF)
- Panorâmica geral da linguagem PHP (PDF)
- Input de dados a partir de formulários HTML (HTML)
- Input de dados a partir links embebidos (HTML)
- Acesso a uma base de dados PostgreSQL com PHP (HTML)
- Acesso a uma base de dados MySQL com PHP (HTML)
- Revisão de transacções em bases de dados (PDF)
- Exemplos de transacções em bases de dados com PHP (HTML)
- Problema causado por 'reload' ou 'refresh' de páginas (PDF)
- Exemplo do problema causado por 'reload' ou 'refresh' em PHP (HTML)
- Exemplo de resolução do problema de 'reload' (HTML)
- Cookies e sessões (PDF)
- Exemplos de utilização de cookies em PHP (HTML)
- Exemplos de utilização de sessões com cookies em PHP (HTML)
- Mais exemplos de utilização de sessões com cookies em PHP (HTML)
- Exemplos de utilização de sessões sem cookies em PHP (HTML)
- Javascript (PDF)
- Exemplos de JavaScript (HTML)
- Cascading Style Sheets (HTML)
- Autenticação utilizando uma base de dados e sessões (HTML)
- Autenticação com HTTP (em inglês) (HTML)
- Motores de pesquisa. Google (PDF)
(Nota: os dados referentes ao Google que estão no PDF são de 2005 e estão desactualizados. A web está sempre a crescer!)
- Artigo escrito pelos fundadores do Google (PDF)
- Introdução ao XML (PDF)
- XML Schema (PDF)
- XSL (PDF)
- Web Services (PDF)
Actualizado pela última vez em 12/Jun/2006.
Fernando Lobo.