Faculdade de Ciências e Tecnologia

Internet Application Design and Implementation

Code

11554

Academic unit

Faculdade de Ciências e Tecnologia

Department

Departamento de Informática

Credits

6.0

Teacher in charge

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

Weekly hours

4

Total hours

56

Teaching language

Português

Objectives

To Know

  • To know the essential aspects of architectural patterns for inversion of control and software architectures specific for Internet Applications.

  • To know the principles of developing web applications and single page web applications.

  • To know the mechanisms of specifying and implementing web service orchestrations.

  • To know the internal structure of an Internet browser and its client applications.

  • To know the principles of data-centric and user-centric development of Internet applications.

  • To know the main data abstraction mechanisms used in Internet applications.

  • To know the major performance pitfalls of Internet applications and their workarounds.

  • To know the main specification and implementation mechanisms for security properties in Internet Applications.

To Do

  • To use development frameworks that implement architectural styles for Internet applications.

  • To specify and build web and cloud applications to support thin, flat, and native clients.

  • To specify and build client applications for web and cloud applications with reactive and rich behavior.

  • To implement authentication mechanisms and specify the core security rules of an Internet Application

  • To specify and efficiently use abstraction data layers such as Object Relational Mappings in Internet applications.

  • To design and deploy Internet Applications that are efficient and maintainable.

Subject matter

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).

Bibliography

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

Courses