Faculdade de Ciências e Tecnologia

Conceção e Implementação de Aplicações para a Internet

Código

11554

Unidade Orgânica

Faculdade de Ciências e Tecnologia

Departamento

Departamento de Informática

Créditos

6.0

Professor responsável

João Ricardo Viegas da Costa Seco, Luís Manuel Marques da Costa Caires

Horas semanais

4

Total de horas

56

Língua de ensino

Português

Objectivos

Saber

  • Conhecer os aspectos essenciais dos padrões arquitecturais que promovem a inversão de controlo e as arquitecturas de software próprias para aplicações na Internet.

  • Conhecer os princípios de desenvolvimento de aplicações web e aplicações de página única.

  • Conhecer os mecanismos para especificação e implementação de orquestrações de web-services.

  • Conhecer a estrutura interna de um browser e das aplicações cliente na Internet.

  • Conhecer os princípios de desenvolvimento de aplicações para a Internet baseados nos dados e no utilizador.

  • Conhecer os mecanismos principais de abstração de dados usados em aplicações para a Internet.

  • Conhecer os principais problemas de desempenho das aplicações na Internet e os mecanismos utilizados para os solucionar.

  • Conhecer os mecanismos de especificação e implementação de regras de segurança, no desenvolvimento de aplicações na Internet.

Fazer

  • Usar frameworks de desenvolvimento de aplicações para a Internet

  • Especificar e construir aplicações servidor para clientes finos, clientes ricos e aplicações nativas.

  • Especificar e construir aplicações cliente para aplicações na Internet com comportamento rico e reactivo.

  • Implementar mecanismos de autenticação e proteção de dados e especificar as principais regras de segurança de uma aplicação na Internet.

Conteúdo

Software Architecture for Internet applications. Inversion of control architectural patterns. Single and compound presentation-abstraction-control architectures. Software as a service (SaaS). Web and Service oriented architectures. Single page applications, plugins and mash-ups. The browser as a virtual machine.


Specification of web and service applications. Data-centric (resource based) application modeling. User-centric (operation based) specification (IFML) Business process modeling in web applications. Web service orchestration (BPEL).


Data and control abstractions of web and service applications. REST (resource based) and SOAP (operation based). Object Relational Mappings (ActiveRecord, Hibernate). Relational and NoSQL data layer models. Data manipulation languages (e.g., LINQ, XQuery, NoSQL languages). Reactive programming models (e.g. Atmosphere, BaconJS, AngularJS, MeteorJS), Unified languages for Internet applications (e.g., GWT, Go, Node.JS). OO based data validation architectures.


Performance, scalability and monitoring of applications. Pitfalls of ORMs. Load balancing. Queuing. Caching. Search and indexing. Logging and monitoring.


Security of internet applications. Access control models (RBAC). Third-party authentication. Common attacks (SQL Injection, XSS-scripting attacks).

Bibliografia

Marco Brambilla and Piero Fraternali. Interaction Flow Modeling Language – Model-Driven UI Engineering of Web and Mobile Apps with IFML. Morgan Kaufmann.

Bill Scott, Theresa Neil. Designing Web Interfaces: Principles and Patterns for Rich Interactions. O''''Reilly Media.

Peter Mularien (2010) Spring Security 3, Packt Publishing, ISBN-10: 1847199747

Paul Tepper Fisher and Brian D. Murphy (2010), Spring Persistence with Hibernate (Expert''''s Voice in Open Source), APRESS, ISBN-10: 9781430226321

Joel Scambray, Vincent Liu and Caleb Sima (2010), Hacking Exposed Web Applications, 3rd Edition: Web Application Security Secrets and Solutions, McGraw-Hill Osborne, ISBN-10: 0071740643

Martin L. Abbott and Michael T. Fischer  (2009), The Art of Scalability: Scalable Web Architecture, Processes and Organizations for the Modern Enterprise

Cursos