Architectures of Applications

Objectives

  • know the main structural and behavioral patterns used for software system development
  • know the characteristics of parameterisable software architectures
  • identify the main characteristics of the most commonly used application servers
  • design computational layers that allow controlled and independent evolution of presentation and data layers
  • design systems that enable the provision of services as a primary mechanism for integration
  • know how to use the main microservices architectural patterns

Program

  • Architectural Definition of the Software System: main structural and behavioural patterns;
  • Advanced aspects of object-oriented programming;
  • Service-oriented architectures;
  • Model-driven development: independent and technology-specific models.
  • Multi-layer programming technologies;
  • Strategies for developing multi-layer independence mechanisms;
  • Services as multi-application integration techniques.
  • Migration to microservices architectures.

Bibliography

  1. Patterns of Enterprise Application Architecture 1st Edition, Martin Fowler, Addison-Wesley Professional, ISBN 978-0321127426, 2002.
  2. Design Patterns: Elements of Reusable Object-Oriented Software, Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, Addison-Wesley Professional, ISBN 978-0201633610, 1994
  3. Spring Persistence with Hibernate, Second Edition, Paul Fisher, Brian D. Murphy, Apress Media, ISBN 978-1-4842-0269-2, 2016
  4. Java EE 8 Recipes - A Problem-Solution Approach, Second Edition, Josh Juneau, Apress Media, ISBN 978-1-4842-3593-5, 2018
  5. Microservice Patterns: With examples in Java, Chris Richardson, Manning Publications, ISBN 978-1617294549, 2019.

Updated: