Para el trabajo practico numero 2 de Paradigmas de Programacion, se prupuso la creacion de un simulador de trafico web. El mismo se realizo en el lenguaje de programacion Kotlin (con jdk-17), utilizando programacion orientada a objetos. La consigna propuesta se encuentra en la siguiente carpeta enunciado.
Para el desarrollo del simulador se siguio el siguiente diagrama de clases, las cuales representan los principales modelos del sistema: [
El simulador se ejecuta a partir de la clase Main
, la cual tiene como primera tarea la lectura de un archivo externo
para obtener los datos de entrada, como Routers, Terminales y la conexion entre ellos. Este archivo debe seguir el
formato propuesto en test.
Luego, el programa empezara a crear paginas (mensajes) aleatorias, con origen y destino aleatorios, y las enviara a traves de los routers hasta llegar a su destino. Cuando una pagina pasa por su Router de origen, la misma es dividida en paquetes. Estos paquetes son enviados a traves de los routers hasta llegar a su destino, donde se vuelven a unir para formar la pagina. El sistema utiliza el algoritmo de Dijkstra para encontrar el camino mas corto entre dos routers, para enviar los paquetes. Cuando todos los paquetes han llegado a su router de destino, se vuelve a unir la pagina y se envia a la terminal de destino.
En la siguiente imagen podemos ver como los paquetes se pueden mezclar con otros paquetes de otras paginas, en un router. Esto favorece la eficiencia del sistema, ya que se aprovecha el ancho de banda de los enlaces. [
Al mismo tiempo que sucede lo explicado anteriormente, el sistema va mostrando por consola el estado de los routers, terminales y paginas, para poder ver el funcionamiento del mismo. En la siguiente imagen podemos ver un ejemplo de esto: [ [