/Middleware-PracticaJMS

Practica de JMS de la asignatura de Middleware del curso 19/20

Primary LanguageJava

Servidor de Noticias

Requisitos

  • Maven 3.6.1
  • Java 1.8.0
  • OpenJDK 8
  • OpenMQ 5.1.1

Nota: OpenMQ está autocontenido en este repositorio.

Contenido del repositorio

Estructura general

Middleware-PracticaJMS/
├── ClienteSN
│   ├── pom.xml
│   └── src
│       ├── main
│       │   └── java
│       │       └── es
│       │           └── upm
│       │               └── middleware
│       │                   ├── App.java
│       │                   └── Client.java
│       └── test
│           └── java
│               └── es
│                   └── upm
│                       └── middleware
│                           └── AppTest.java
├── docs
│   ├── formato_noticia.txt
│   └── Practica-JMS.pdf
├── noticias_ejemplo
│   ├── noticia_deportes.txt
│   ├── noticia_economia.txt
│   └── noticia_politica.txt
├── README.md
├── scripts
│   ├── install_mq.sh
│   ├── openmq5_1_1.zip
│   ├── run_broker.sh
│   ├── run_client.sh
│   └── run_server.sh
└── ServidorNoticias
    ├── pom.xml
    └── src
        ├── main
        │   └── java
        │       └── es
        │           └── upm
        │               └── middleware
        │                   ├── App.java
        │                   ├── ListHandler.java
        │                   ├── Noticia.java
        │                   └── Server.java
        └── test
            └── java
                └── es
                    └── upm
                        └── middleware
                            └── AppTest.java

  • ClienteSN: Código fuente del cliente
  • docs: Documentación relevante
  • scripts: Scripts para la ejecución de los distintos componentes del proyecto
  • ServidorNoticias: Código fuente del servidor

Definición de clases

  • Las clases App.java y AppTest.java tienen como función la de comprobar la correcta construcción del proyecto en Maven.
  • Cliente:
    • Client.java: Contiene todo el código fuente del cliente
  • Servidor:
    • Noticia.java: Contiene el objeto java Noticia
    • ListHandler.java: Contiene la funcionalidad de manejar todas las noticias
    • Server.java: Es el cuerpo principal del servidor, y el encargado de escuchar la llegada de mensajes

Instalar el broker

Si no tienes instalado el broker, puedes instalarlo ejecutando el siguiente script desde el directorio raiz del proyecto:

./scripts/install_mq.sh

Esto creará la carpeta mq en el directorio raiz del proyecto y te permitirá ejecutar el script run_broker.sh.

Ejecución de la aplicación

Cada comando ha de ejecutarse en distintos terminales.

Primero, ejecutar el broker

./scripts/run_broker.sh

Segundo, ejecutar el servidor

./scripts/run_server.sh

Por ultimo, ejecutar tantos clientes como se desee

./scripts/run_cliente.sh

Formato de las noticias para importar desde un archivo

Para que la aplicación funcione correctamente, las noticias a importar desde un archivo tienen que seguir el formato de este fichero.

No es necesaria ninguna extensión de archivo, ni ninguna ruta específica, ya que a la hora de ingresar la noticia desde un archivo, se tendrá que escribir la ruta absoluta del archivo.

Para mayor comodidad, se ha añadido una carpeta noticias_ejemplo donde hay varios ejemplos de noticias para importar directamente.

Autores

  • Víctor Nieves Sánchez (Scrum Master & Developer)
  • Ruben Garcia Garcia (Product Owner & Developer)
  • Eduardo Freyre Gomez (Developer)
  • Miguel Gonzalo Anton (Developer)