General information:
Code:
UBPJO-135
Name:
Web application technologies
Profile of education:
Academic (A)
Lecture language:
English
Semester:
Spring
Responsible teacher:
mgr inż. Konieczny Marek (marekko@agh.edu.pl)
Academic teachers:
mgr inż. Konieczny Marek (marekko@agh.edu.pl)
Module summary

The course focuses on practical aspects of creating web apps. Students will learn modern technologies on laboratories and later will practice it in their projects deployed on the cloud.

Description of learning outcomes for module
MLO code Student after module completion has the knowledge/ knows how to/is able to Connections with FLO Method of learning outcomes verification (form of completion)
Social competence
M_K001 Can think and act in a creative manner, can cooperate with teammates during project work. Project,
Participation in a discussion
Skills
M_U001 Can create web applications using modern languages and frameworks. Activity during classes,
Project,
Execution of a project,
Execution of laboratory classes
M_U002 Can create, configure and use services available through different technologies. Activity during classes,
Project,
Execution of a project,
Execution of laboratory classes
M_U003 Can use various techniques and framworks as a part of web-based application development process. Activity during classes,
Project,
Execution of a project,
Execution of laboratory classes
Knowledge
M_W002 Knows and understands modern technologies, patterns and programming languages used in enterprise systems. Examination,
Activity during classes
M_W003 Knows and understands fundamental rules of software testing. Activity during classes,
Examination
FLO matrix in relation to forms of classes
MLO code Student after module completion has the knowledge/ knows how to/is able to Form of classes
Lecture
Audit. classes
Lab. classes
Project classes
Conv. seminar
Seminar classes
Pract. classes
Zaj. terenowe
Zaj. warsztatowe
Others
E-learning
Social competence
M_K001 Can think and act in a creative manner, can cooperate with teammates during project work. - - + - - - - - - - -
Skills
M_U001 Can create web applications using modern languages and frameworks. - - + - - - - - - - -
M_U002 Can create, configure and use services available through different technologies. - - + - - - - - - - -
M_U003 Can use various techniques and framworks as a part of web-based application development process. - - + - - - - - - - -
Knowledge
M_W002 Knows and understands modern technologies, patterns and programming languages used in enterprise systems. + - - - - - - - - - -
M_W003 Knows and understands fundamental rules of software testing. + - - - - - - - - - -
Module content
Lectures:
  1. Introduction, history and taxonomy of web-based systems.

    • Introduction to web-based systems, basic network protocols, brief historical background.
    • Taxonomy of web-based systems, from CGI to Spring.
    • Introduction to J2EE technologies.

  2. Representational State Transfer REST

    • Introduction to Representational State Transfer REST architecture.
    • Different methods of describing and using resources.
    • Designing REST applications.

  3. Web Services

    • Introduction to SOAP: base technologies XML, WSDL.
    • Defining the SOAP-based service.
    • Different architectural styles of constructing SOAP-based services.

  4. Spring Core and Spring Web

    • Introduction to Spring Framework.
    • Inversion of Control and Dependency Injection.
    • Aspect-Oriented programming.
    • Spring Model-View-Controller approach.

  5. Advanced Dependency Injection Frameworks

    • Introduction to other DI frameworks.
    • Google Guice.

  6. Writing Testable Code

    • How to write testable code.

  7. Java Enterprise Edition

    • Introduction to J2EE technologies.
    • Most common design patterns used in enterprise systems.

Laboratory classes:
  1. RESTful services

    Basics of JAX-RS (Oracle), using Jersey – implementation of JAX-RS, various Eclipse IDE Tools, Basics of JAXB (Oracle).

  2. Web Services

    Creating SOAP-based web services , comparision of JAX-RPC and JAX-WS,different styles of WSDL, using Eclipse IDE, service inspections using SoapUI.

  3. Spring Core

    Spring basics, creating Spring beans in different scopes, various ways of creating beans, software testing in Spring.

  4. Spring MVC

    Spring MVC architecture, creating a simple web app, integration with various services.

Student workload (ECTS credits balance)
Student activity form Student workload
Summary student workload 100 h
Module ECTS credits 4 ECTS
Examination or Final test 10 h
Participation in lectures 14 h
Participation in laboratory classes 14 h
Completion of a project 40 h
Realization of independently performed tasks 22 h
Additional information
Method of calculating the final grade:

The final grade will be based on the following schema:
exam – 40%
lab activities – 30%
project – 30%

Prerequisites and additional requirements:

The course has following requirements:
- knowledge of Java programming language
- basic knowledge of operating systems
- basic knowledge of computer networks

Recommended literature and teaching resources:

Various resources available online (will be provided during lectures).

Scientific publications of module course instructors related to the topic of the module:

Load-balancing:

  • Dominique Jullier, Marek Konieczny, Sławomir Zieliński; Applying software-defined networking paradigm to tenant perspective optimization of cloud services utilization, Computer Networks 2015.

Microsevices and Web Applications:

  • Balis, Bartosz and Bartynski, Tomasz and Brzoza-Woch, Robert and Bubak, Marian and Harezlak, Daniel and Kasztelnik, Marek and Konieczny, Marek and Kwolek, Bartosz and Malawski, Maciej and Nawrocki, Piotr et al. Dedicated IT infrastructure for Smart Levee Monitoring and Flood Decision Support. E3S Web of Conferences. Vol. 7. EDP Sciences, 2016.
Additional information:

None