Witam,

Mam taki algorytm:

1.1. Start aplikacji
1.2. Stworzenie połączenia z bazą danych 
1.3. Initializacja (utworzenie) serwera
1.4. Otwarcie połączenie z nowym klientem i stworzenie nowego wątku dla niego 
(zadania wątku zaczynają się od punktu 2.1)
1.5. Jeśli serwer jest włączony wróć do punktu 1.4
1.6. Koniec

2.1. Jeśli dostępna jest wiadomość od serwera to czytaj ją
2.2. Parsuj wiadomość (tutaj nie jestem pewny, ale wiadomość zostanie przekazana
do innego wątku, który ogólnie zajmuje się wiadomościami - punkt 3.1)
2.3. Wróc do punktu 2.1

3.1. Czekaj na wiadomość
3.2. Generuj odpowiedź na wiadomość (pobieranie danych z bazy danych lub rozłączenie
klienta)
3.3. Zwrócenie odpowiedzi do klienta, jeśli takowa istnieje
3.4. Wróc do puntku 3.1

Wiem jak go zapisać w najprostszej postaci, ale mam pytanie czy są już jakieś patterny do tego sprawdzone przez innych programistów? Ewentualnie jakieś rady dla mnie przy projektowaniu tego cacka.