Giter Site home page Giter Site logo

pscd_tf's Introduction

TRABAJO FINAL PSCD

El trabajo consiste en la realización de un sistema de publicación y lectura de ofertas mediate un sistema linda.

Clientes


  • Publicadores: Publican las ofertas que los lectores tendrán que leer cada X tiempo, las ofertas, tendrán el siguiente formato:

      [ID,ORIGEN,DESTINO,PRECIO]
    
  • Buscadores: Dentro de estos distinguimos entre dos tipos:

    • Simples: Buscan una oferta tupla mediante el siguiente patrón:

        [?I,?O,?D,?P]	-- Id, Origen, Destino, Precio
      

    En el ejercicio, hay 10 procesos buscadores simples que realizan su tarea 10 veces, pudiendo realizar en cada una de estas iteraciones hasta 3 busquedas consecutivas.

    • Combinados: Buscan dos oferta tupla en las que la ciudad de destino de la primera tupla sea la ciudad de origen de la segunda tal cual muestra el siguiente patron:

        [?I,?O,?P,?X]	Oferta 1:	 Id, Origen, Parada,  Precio
        [?J,?P,?d,?Y]	Oferta 2:	 Id, Parada, Destino, Precio
      

    Ejemplo: Zaragoza -> Pamplona -> Bilbao

Servidores


  • Servidor Despliegue: Almacena toda la información necesaria para que un proceso publicador o buscador pueda conectarse al Linda Server que necesite mediante Linda Driver .

  • Servidores Linda: Servidores con un espacio de tuplas, en el ejercicio hay 3. [Linda server1] -- Tuplas de tamaño [1-3] [Linda server2] -- Tuplas de tamaño [4-5] [Linda server3] -- Tuplas de tamaño [6]

Apoyo


  • Monitorización: Servidor encargado de realizar una imagen de los servidores linda cada X tiempo.

  • Finalizador: Finaliza la ejecución del servidor Despliegue y de los Servidores Linda impidiendo que se conecte alguien más a estos.

SETUP / USAGE / HOW TO

El ejercicio se descompone en diferentes partes: clientes, servidores y apoyo. Una posible despligue del sistema sería:

  • PILGOR:

      ADDRESS:	[pilgor.cps.unizar.es, 155.210.152.12]
      PORTS:		 [32080] [32079] [32078]
    

    Servicios lanzados: Servidor Linda1, Servidor Linda2, Servidor Linda3.

      Auto:		./runServers
      Manual:	./ServidorLinda1 32080 & ServidorLinda2 32079 &
      					  ServidorLinda2 32078
    
  • HENDRIX:

      ADDRESS:	[hendrix01.cps.unizar.es, 155.210.152.183]
      PORT:		  [2160]
    

    Servicios lanzados: Servidor Despliegue y Monitorizacion.

      Auto:		./runDespliegue & ./runMonitorizacion
      Manual:	./Despliegue 2160 & ./Monitorizacion 2160
    
  • PC_1:

      ADDRESS:	[XXX.XXX.XXX.XXX]
      PORT:		   [XXXX]
    

    Servicios lanzados: Publicadores y Buscadores Coms: Se lanzarán con la ip y puerto del servidor despligue

      Auto:		./runPublicadores & ./runBuscadores
      Manual:	./Publicadores 155.210.152.183 2160 & 
      				 ./Buscadores 155.210.152.183 2160
    
  • PC_2:

      ADDRESS:	[XXX.XXX.XXX.XXX]
      PORT:		   [XXXX]
    

    Servicios lanzados: Cliente Carga Coms: Se lanzará con un parámetro de carga inicial de 1000 tuplas el cual podrá modificarse

      Auto:		./runClienteCarga
      Manual:	./ClienteCarga 155.210.152.183 2160
    
  • PC_3:

      ADDRESS:	[XXX.XXX.XXX.XXX]
      PORT:		   [XXXX]
    

    Servicios lanzados: Finalizador Coms: Finalizará la ejecución de los servidores linda

      Auto:		./runFinalizador
      Manual:	./Finalizador 155.210.152.183 2160
    

NOTA 1: En la raiz del repositorio se encuentra un archivo Makefile que compila todo el ejercicio en el sistema local, es decir, si se quiere realizar la ejecución de todo el sistema en distribuido tendra que tener cuidado en los flags que usa el make, en el caso de nuestra prueba, hendrix y pilgor no comparten un flag y necesitan una compilación distinta.

NOTA 2: En la raiz del repositorio se encuentra un archivo BASH"menu.bash" que despliega un menu desde el cual se podrá controlar casi la totalidad de los lanzamientos del ejercicio.

SPECS

  • TUPLAS: Representan los permisos y ofertas del sistema.
    • Patrones: Se considera patron a la siguiente expresión regular: ?[A-Z]
    • No patrón: Se considera no patrón todo aquello que no cumpla la expresión regular anterior.
  • LINDA DRIVER: Libreria con la que los clientes se comunican con los servidores linda.

FAQ / CONTACT / TROUBLESHOOT

  1. ¿Cual es la estrategia de finalización del sistema? La estrategia de finalización del sistema consiste en que los publicadores publican tuplas tipo oferta hasta detectar que todos los procesos buscadores han acabado. Los servidores linda y depliegue se apagaran con la ejecución del finalizador.

  2. ¿Estructura del espacio de tuplas? Hay un espacio de tuplas para cada tamaño de estas.

DEVELOPERS

| Pablo Bueno | Carlos Paesa | Santiago Illa | Javier Pardos | Luis Palazón | Héctor Toral

pscd_tf's People

Contributors

hec7orci7o avatar paesa avatar xlxxlxtx avatar luis7ps avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.