General goals described according to the expected learning results.
1. Knowledge and understanding: the student will be able to use aspect-oriented, parallel, asyncronous, and distributed mechanisms.
2. Applying knowledge and understanding: the student will be able to design, document, and implement aspect-oriented software systems, distribute and complex systems.
3. Making judgements: the student will be able to analyse parallel and distributed software systems.
4. Communication skills: the student will be able to describe distributed software systems using a proper technical language.
5. Learning skills: the student will be able to solve typical problems, by studying, analysing and using novel distributed technologies.
General goals described according to the expected learning results.
Frontal lessons for concepts, techniques and code.
Frontal lessons for concepts, techniques and code; practical tutorials with examples of code for the covered topics
Design patterns for distributed systems Proxy, Broker, Forward-Receiver, Remote Facade, Data Transfer Object, Session State, Serialized Large Object. Design and implementation of aspect-oriented software systems. Design pattern for aspect-oriented systems and Refactoring to aspects. Java 8 and Map Reduce. Reactive programming design patterns Circuit Breaker, Bulkheads. Design patterns for secure distributed systems. Message-oriented Middleware RabbitMQ.
Introduction to DevOps. Git Workflow for distributed development. Mining Software Repository. Combinatorial Testing. Model Checking for concurrent systems. Infrastructure Automation with OpenStack. Microservices. Microservices with Spring Boot.
1. F. Buschmann, R. Meunier, H. Rohnert, P. Sommerlad, M. Stal. Pattern-Oriented Software Architecture A System of Patterns. John Wiley and Sons, 1996
2. M. Fowler. Patterns of Enterprise Application Architecture. Addison-Wesley, 2003
3. M. Schumacher, E. Fernandez-Buglioni, D. Hybertson, F. Buschmann, P. Sommerlad. Security Patterns: Integrating Security and Systems Engineering. John Wiley and Sons, 2006
4. R. Laddad. AspectJ in Action: Enterpriese AOP with Spring Applications. Manning Publications. 2010.
5. R.-G. Urma, M. Fusco, A. Mycroft. Java 8 in Action: Lambdas, streams, and functional-style programming. Manning, 2015
6. G. Hohpe, B. Woolf. Enterprise Integration Patterns. Addison-Wesley, 2003
7. A. Videla, J.J.W. Williams. RabbitMQ in Action. Manning, 2012