
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