Mercurial > kraina_muminkow
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.