| Código: | LIB10135 | Sigla: | TI | |
| Área Científica: | Informática | |||
| Página Web: | http://moodle.esgt.ipsantarem.pt/course/view.php?id=260 |
| Área de Ensino: | Informática |
| Sigla | Nº de Estudantes | Plano de Estudos | Ano Curricular | Créditos | Horas Contacto | Horas Totais |
|---|---|---|---|---|---|---|
| LIB1 | 34 | Despacho n.º 9994/2012, de 24 de julho | 2º | 5 | 60 | 125 |
| Teórico-Práticas: | 0 |
Docência - Horas Semanais
|
Docência - Responsabilidades
|
Português
O trabalho no perfil que se pretende formar num aluno(a) desta unidade curricular promove a criação de capacidades e competências de trabalho na problemática do desenvolvimento de aplicações de aplicações baseadas na web. Desta forma o aluno deverá adquirir competências no desenvolvimento de aplicações cliente-servidor no ecossistema Web utilizando a tecnologia Java de Servidor como plataforma de desenvolvimento, seguindo as boas práticas. Espera-se assim que o aluno aprovado seja capaz de:
a) Identificar e compreender o conjunto de protocolos de suporte ao ecossistema Web;
b) Identificar e utilizar os mecanismos e tecnologias apropriados para o desenvolvimento de soluções para os vários tipos de problemas;
c) Compreender as diferentes arquiteturas das aplicações e padrões para o desenvolvimento de aplicações cliente-servidor baseadas na Web;
d) Compreender, manipular e construir interfaces de acesso a dados persistentes;
e) Compreender os métodos e as tecnologias e formatos para descrever e trocar dados estruturados na Web;
f) Compreender e utilizar protocolos para a construção de serviços e aplicações distribuídas na Web.
1. Internet e Web: Protocolos, Serviços e Tecnologias Fundamentais
- Perspetiva histórica
- TCP-IP, DNS, HTTP e HTML
2. A Web: Protocolo HTTP
- URL
- Modelo Cliente-servidor
- Estrutura das mensagens HTTP: pedidos, respostas, códigos de estado
- Tipo de conteúdos, controlo de cache, segurança e sessões
3. Web Browsers e Interfaces Web
- Estrutura de documentos Web: Conceitos avançados de HTML5
- Tecnologias de apresentação: Folhas de Estilo em Cascata (CSS)
4. Servidores Web
- Resolução de URL e encaminhamento de pedidos
- Entrega de conteúdo estático
- Entrega de conteúdo dinâmico: PHP, JSP, Servlets, ASP.net, Node.js
5. Aplicações de Servidor
- Criação de páginas dinâmicas
- Manutenção de estado e controlo de sessões
- Arquitetura de aplicações e Modelos MVC (Model-View-Controller)
- Acesso a dados: Bases de Dados, ficheiros, objetos serializados;
- Comunicação cliente-servidor: AJAX, Server Events e Websockets;
- Fundamentos de aplicações web distribuídas: REST Services e Web Services
Os primeiros quatro módulos permitem fornecer ao aluno os fundamentos base relativos ao paradigma de computação cliente-servidor no ecossistema Web, nomeadamente os protocolos de suporte, características das entidades cliente e servidor, assim como também as tecnologias base para a construção de interfaces de aplicação Web, nomeadamente para a definição de estrutura e da apresentação. O último modulo, centra-se especificamente na problemática da construção de aplicações cliente-servidor baseadas na web. Aqui são abordadas as tecnologias para a criação de páginas dinâmicas, manutenção de estado, arquiteturas de referência para aplicações Web, o acesso a dados persistentes, comunicação assíncrona entre as entidades cliente e servidor e alguns fundamentos para a criação de aplicações web distribuídas. Em suma, este módulo fornece ao aluno um conjunto de conhecimentos e metodologias que lhe permitirá desenhar, projetar, selecionar tecnologias e desenvolver soluções Web adequadas às especificidades dos diferentes problemas a resolver.
Aulas teórico-práticas com exposição de conteúdos teóricos, demonstração de conceitos, de boas práticas e de resolução de exercícios;
Aulas práticas de acompanhamento à realização de um projeto de média dimensão.
Avaliação:
- Teste escrito (E), com nota mínima de 8 valores;
- Trabalho prático (P), com nota mínima de 10 valores;
Nota final: 0.4 * E + 0.6 * P
As aulas teórico práticas têm como objetivo a exposição de conteúdos teóricos sobre a matéria em causa em cada um dos módulos, seguida da resolução de exercícios práticos ou de experimentação. Desta forma é estabelecida uma ponte entre os conceitos teóricos e práticos permitindo ao aluno o desenvolvimento de competências através da prática e uma melhor internalização dos conhecimentos transmitidos.
O projetos de média dimensão a desenvolver são o culminar da aplicação prática dos conhecimentos e competências adquiridas nas aulas teórico-práticas, onde os estudantes deverão ser autónomos e capazes de planear, projetar e desenvolver aplicações cliente-servidor baseadas na web.
- Shklar, Leon, Rosen, Rich, (2012). Web Application Architecture: Principles, Protocols and Practices. 2nd edition, Wiley. ISBN: 978-0470518601;
- Williams, Nicholas S., (2014). Professional Java for Web Applications 1st Edition. Wrox. ISBN: 0470012277;
- Duckett, Jon, (2011). HTML and CSS: Design and Build Websites. John Wiley, ISBN: 978-1118008188;
- Parsian, Mahmoud, (2014). JDBC Recipes 1st Edition. Apress, ISBN: 978-1430211990;
- WebSockets - An introduction to real-time communications for the Web. Developer Press, ISBN: 978-1590595206.
- Mokhov, Serguei A., Min Chen, and Yuhong Yan., (2009). Service-Oriented Architectures and Web Services: Course Tutorial Notes. arXiv preprint arXiv:0907.2974
- Pautasso, C. (2014). RESTful Web Services: Principles, Patterns, Emerging Technologies. In: Bouguettaya, A., Sheng, Q. Z. e Daniel, F. (eds.) Web Services Foundations. Springer New York.
- Fielding, Roy, Berners-Lee, T., Irvine, UC (2014). Hypertext Transfer Protocol (HTTP/1.1). https://tools.ietf.org/html/rfc2068
- Belshe, M., Peon, R., google, BitGo, (2015). Hypertext Transfer Protocol (HTTP/2.0). https://tools.ietf.org/html/rfc7540