Network Oriented Information Systems

Learning Outcomes

The aim of this course is to explain the nature and basic characteristics of the Information Systems that are run and managed over a network. With the completion of the course, the student will be in position:

  • to understand and become familiar with the key aspect for the design and development of network-oriented information systems.
  • to know the main characteristics of the information systems, the required interfaces and the approaches to realize the network-oriented aspect of such information systems.
  • to be able to implement network-oriented information systems, by utilizing programming techniques and methods.

Course Contents

  • Information Systems and Networks.
  • Portals, Middleware, Integration, Enterprise Application Integration, Enterprise Service Bus.
  • Web Services, Service-Oriented Architectures, SOA governance.
  • Organizational change, the impact of integrated network oriented IS on organizations.
  • Enterprise Resource Planning applications, Customer Relationship Management systems, Supply Chain Management solutions, e-business applications.

Moreover, the EVDOXOS system is utilized to provide additional useful information to the students as well as exercises that respond to the corresponding thematic topics / sessions covered by the course.

Recommended Readings

  • Papazoglou M. P. (2008): Web Services: Principles and Technology, Pearson, Prentice Hall.
  • Josuttis N. (2007): SOA in Practice, O’Reilly.

Web Programming

Learning Outcomes

This course aims to familiarize students with web programming technologies and provide a clear understanding of the design and management challenges inherent in modern web systems and applications. The curriculum covers the design and implementation of RESTful APIs, as well as critical issues such as security, performance, scalability, and extensibility.

Upon successful completion of this course, students will be able to:

  • Design and implement RESTful APIs from the ground up.
  • Apply best practices for API design, versioning, security, and documentation.
  • Develop applications using Java EE and the Spring Framework.
  • Leverage methodologies and best practices for developing multi-threaded applications and managing concurrency (threads, locks, synchronization).
  • Integrate authentication and authorization techniques (including IAM) to secure web services.

General Competences

  • Search for, analysis and synthesis of data and information by the use of appropriate technologies
  • Development of free, creative and inductive thinking
  • Decision-making
  • Individual/Independent work
  • Group/ Team work

Course Contents

  • Introduction to RESTful APIs (RESTful architecture, REST constraints, HTTP methods, and status codes)
  • Design of RESTful APIs (best practices in API design, resource identification and URIs, HATEOAS (Hypermedia as the Engine of Application State), pagination, filtering, and sorting)
  • Implementation of RESTful services, use of frameworks (e.g., Spring Boot – Java, Flask – Python, Ktor – Kotlin), data serialization formats (JSON, XML)
  • Error handling and validation (error handling strategies, effective use of HTTP status codes, custom error responses, input data validation techniques)
  • Security in RESTful APIs (API security best practices, authentication and authorization (OAuth2, JWT), HTTPS and data encryption)
  • API documentation and testing (Using Swagger/OpenAPI for documentation, unit and integration testing with tools like Postman, JUnit)
  • Implementation of architectural patterns and design patterns like MVC and MVVM.
  • Design and implementation of GraphQL schemas and services.
  • Communication between applications and systems via Sockets.
  • Optimization of server application performance through caching, load balancing, and other techniques.

Suggested Bibliography

  • ARMANDO FOX, DAVID PATTERSON (2017), ΤΕΧΝΟΛΟΓΙΑ ΑΝΑΠΤΥΞΗΣ ΛΟΓΙΣΜΙΚΟΥ ΩΣ ΥΠΗΡΕΣΙΑΣ: ΜΙΑ ΕΥΕΛΙΚΤΗ ΠΡΟΣΕΓΓΙΣΗ ΜΕ ΧΡΗΣΗ ΥΠΟΛΟΓΙΣΤΙΚΗΣ ΝΕΦΟΥΣ
  • Χρήστος Δουληγέρης, Ρόζα Μαυροπόδη, Εύη Κοπανάκη, Απόστολος Καραλής (2021): Τεχνολογίες και Προγραμματισμός στον Παγκόσμιο Ιστό
  • Ι. Κ. ΚΑΒΟΥΡΑΣ, Ι. Ζ. ΜΗΛΗΣ, Α. Α. ΡΟΥΚΟΥΝΑΚΗ, Γ. Β. ΞΥΛΩΜΕΝΟΣ (2011): ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΜΕ JAVA, ΙSBN: 9789609732376
  • Sanjay Patni (2017): Pro RESTful APIs, Design, Build and Integrate with REST, JSON, XML and JAX-RS, ISBN: 9781484226650
  • Fernando Doglio (2018): REST API Development with Node.js, ISBN: 9781484237151