Git Product home page Git Product logo

resource-allocation-system's Introduction

1. Opis implementacji
Protokuł komunikacji pomiędzy węzłami został oparty o protokół TCP.
Zawiera on 5 rodzaji komunikatów

-PORT-
Komunikat ten wysyłany jest do węzła z którym się połączyliśmy aby 
ten wiedział do jakich węzłów ma dostęp. Po odebraniu takiego komunikatu węzeł zapisuje 
do kontenera adres IP oraz port podany w komunikacie. 
Budowa: PORT <adres IP węzła> <port węzła>


-ALLOCATED-
Komunikat wysyłany w momencie poprawnej alokacji zasobów
zawierający typ zasobu oraz jego ilość wraz z adresem IP oraz portem węzła
na którym zasób został zaalokowany.
Budowa: ALLOCATED <typ zasobu> <ilosc zasobu> <adres IP węzła> <port węzła>


-MISSING-
Komunikat wysyłany w momencie kiedy nie ma odpowiedniego typu zasobu 
lub kiedy jest za mało zasobów danego typu w węźle. Komunikat
zawiera typ zasobu wraz z brakującą ilością którą trzeba gdzieś zaalokować
oraz adres IP i port węzła na którym brakowało zasobów.
Budowa: MISSING <typ zasobu> <ilosc brakujacego zasobu> <adres IP węzła> <port węzła>


-FAILED-
Komunikat wysyłany w momnecie kiedy nie da się zaalokować zasobów
Budowa: FAILED


-ALLGOOD-
Komunikat wysyłany w momencie poprawnej alokacji wszystkich zasobów.
Zawiera adres IP oraz port węzła który rozsyła komunikat ALLGOOD.
Budowa: ALLGOOD <adres IP węzła> <port węzła>


-Sposób działania-

W momencie tworzenia węzła wysyła on komunikat PORT do węzła do którego jest podłączony. Następnie po odebraniu połączenia od klienta dokonuje on próby 
alokacji zasobów. Jeśli zasobów brakuje wysyła on komunikat MISSING do węzłow do których ma dostęp. Węzeł który otrzymuje komunikat MISSING
dokonuje próby alokacji zasobów. Jeżeli taka próba się powiedzie odsyła on komunikat ALLOCATED. Jeżeli jednak wciąż brakuje zasobów rozsyła on dalej
komunikat MISSING do wezłow do których ma dostęp. Jeżeli węzeł który otrzyma komunikat MISSING nie może dokonać alokacji zasobów a nie ma już węzła do 
którego może się udać, to wysyła komunikat FAILED. Węzeł który otrzyma komunikat FAILED przesyła do dalej chyba że jest to węzeł do którego jest podłączony 
klient. W takim wypadku komunikat FAILED jest wysyłant bezpośrednio do klienta. Jeśli węzęł który wysłał MISSING otrzyma z powrotem komunikat ALLOCATED odsyła go dalej
chyba że jest to węzeł do którego jest podłączony klient. W takim wypadku komunikat ALLOCATED jest wysyłąny bezpośrednio do klienta. 


2.Jak skompilowac i zainstalowac
  Kompilacj:
  javac NetworkNode.java
  Uruchomienie:
  java NetworkNode -ident <identifier> -tcpport <tcpPort> -gateway <name>:<port> <resource list>
  lub:
  java NetworkNode -ident <identifier> -tcpport <tcpPort> <resource list>

3.Co zostalo zaimplementowane
Implementacja węzła sieci umożliwiającą organizacje sieci.
Implementacja funkcjonalności pozwalającej na odbieranie żądań od klientów.
Implementacja funkcjonalności pozwalającej na alokacje zasobów o ile to możliwe.
Implementacja funkcjonalnosci pozwalającej na alokacje w dowolnym węźle.
Implementacja własnego protokołu komunikacji opartego o TCP służącej do komunikacji pomiędzy węzłami.
Implementacja węzłow pozwalająca na ułożenie ich w dowolnej topologi.

resource-allocation-system's People

Contributors

dawkozlowski avatar

Watchers

 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.