view frontend/doc/koncepcja.rst @ 28:d017e2ab3027

Poprawki z rana 23 maja, prezentacja django-flask
author Michał Rudowicz <michal.rudowicz@fl9.eu>
date Mon, 23 May 2011 12:49:48 +0200
parents
children
line wrap: on
line source

Koncepcja
=========

Projekt koncepcyjny
-------------------

Aplikacja składa się z trzech modułów:

* Strony klienta
* Serwera aplikacji
* Aplikacji rozproszonej

Moduły aplikacji
----------------

Aplikacja rozproszona
^^^^^^^^^^^^^^^^^^^^^

Aplikacja rozproszona składa się z komputera pełniącego rolę
mastera oraz przynajmniej dwóch komputerów pełniących rolę
slave.

Po pobraniu zadania w formacie CSV master przesyła komputerom pełniącym rolę
slave za pomocą metody broadcast fragmenty zadania. Po przetworzeniu
swojego fragmentu slave wysyła wynik do komputera pełniącego rolę
mastera, który w przypadku istnienia dalszych nieprzetworzonych
fragmentów zadania przesyła je do komputera slave. Jednocześnie
uaktualnia informacje o zadaniu na serwerze aplikacji.

W przypadku zakończenia zadania master przesyła całościowy wynik
do serwera aplikacji i informuje komputery pełniące rolę slave o
zakończeniu operacji.

Do komunikacji master-slave wykorzystywana jest technologia
MPICH.

Serwer aplikacji
^^^^^^^^^^^^^^^^

Serwer aplikacji udostępnia łatwy w użyciu interfejs dla
aplikacji rozproszonej umożliwiający pobieranie i aktualizowanie
informacji w bazie danych przy pomocy zapytań typu GET i POST
w protokole HTTP.

Serwer aplikacji wykorzystuje język Python wraz z frameworkiem
Flask, natomiast do obsługi bazy danych wykorzystywany jest
Sqlite.

Z bazą danych komunikuje się tylko i wyłącznie serwer aplikacji.

Strona klienta
^^^^^^^^^^^^^^

Strona klienta została napisana w języku HTML z użyciem CSS i
JavaScript. Jest ona udostepniana przez serwer aplikacji przy
użyciu protokołu HTTP. Strona klienta umożliwia dodawanie nowych
zadań oraz przeglądanie zadań w systemie, pokazując ich stan,
procent ukończenia i informację o wyniku.