This repository contains all the projects carried out during the Distributed Systems course, taught by Dr. J. Octavio Gutiérrez García at ITAM.
The Distributed Systems course is designed to provide an in-depth understanding of the principles and techniques used in building systems whose components are distributed across a network. Over the course I learned to design, implement, and manage distributed systems, understand the challenges and leverage the most advanced technologies.
The course aims to equip students with the skills needed to design and implement distributed systems. It covers the existing technologies for implementing distributed systems, methods of communication between distributed processes, and the development of web applications and services. The course also delves into concurrency mechanisms in distributed processes.
- Design and implement distributed systems.
- Understand and manage existing technologies for implementing distributed systems.
- Implement communication methods between distributed processes.
- Develop web applications and services.
- Implement concurrency mechanisms between distributed processes.
- Concurrency
- TCP and UDP Sockets
- Serialization: Java, XML, JSON, Protocol Buffers
- RPC (Remote Procedure Call)
- RMI (Remote Method Invocation)
- Microservices with gRPC
- Request-Reply Protocols
- Topic Services
- Queue Services
- Java Message Service (JMS)
- HTML5 and CSS
- JavaScript and Asynchronous Communication
- Frameworks: Flask, Django
- SOAP (Simple Object Access Protocol)
- RESTful
- GraphQL