diff 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 diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/frontend/doc/koncepcja.rst	Mon May 23 12:49:48 2011 +0200
@@ -0,0 +1,58 @@
+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.