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