Aplikacja Client-Server || Part 1 || Rozpoczęcie projektu
🚀

Aplikacja Client-Server || Part 1 || Rozpoczęcie projektu

notion image
 
 

Wprowadzenie


W tej serii wpisów będę prowadził Cię krok po kroku przez proces tworzenia mojej aplikacji opartej na architekturze Client-Server w języku Java. W kolejnych wpisach będę stopniowo prezentował rozwój projektu, zgłębiając coraz bardziej zaawansowane koncepcje i technologie.

 
 

Client-Server


Architektura C/S (Client-Server) opiera się na podziale funkcji aplikacji między dwie części: Klienta i Serwer.

Klient jest odpowiedzialny za interakcję z użytkownikiem oraz prezentację danych, podczas gdy serwer zarządza danymi, logiką biznesową i udostępnia usługi klientom. Klient wysyła żądania do serwera, a serwer odpowiada na te żądania, przetwarzając je i zwracając konkrente odpowiedzi.

 
 

Wykonane prace


Pierwszym krokiem było przygotowanie prostego kodu części Client i Server, który umożliwi podstawową komunikację pomiędzy tymi częściami aplikacji. W moim przypadku, korzystam z języka Java oraz biblioteki log4j do logowania zdarzeń w aplikacji.

1. Stworzyłem klasy Client oraz Server operujące się na tzn. socketach + klasę dodatkową ResponseService

2. Klient nawiązuje połączenie z serwerem. Następnie wysyła proste żądania i odbiera odpowiedzi

3. Serwer obsługuje polecenia i zwraca odpowiedź w formacie JSON:

  • ""uptime"" - zwraca czas życia serwera
  • ""info"" - zwraca numer wersji serwera i datę jego utworzenia
  • ""help"" - zwraca listę dostępnych komend z ich opisem
  • ""stop"" - zatrzymuje jednocześnie serwer i klienta

3. Na ten moment z serwerem może pracować tylko JEDEN podłączony klient

 
 

Struktura kodu


Klasa Client:

  • Odpowiada za łączenie się z serwerem oraz obsługę komunikacji z nim

Klasa Server:

  • Odpowiada za nasłuchiwanie na połączenia oraz obsługę żądań klient

Klasa ResponseService:

  • Udostępnia metody generujące odpowiedzi na żądania klienta.
 
 

Program w akcji


Video preview
 
 
 

Link do repozytorium


Client-Server-Application
jakubBoneUpdated Sep 2, 2024
 
 

Jakie dalsze plany?


1. Rozpiszę całe zadanie jako Issues na Githubie

2. Dodam zarządzanie użytkownikami

3. Dodam obsługę uprawnień:

  • admin -> może wszystko
  • user -> ma dostęp wyłącznie do swoich danych

4. Aplikacja będzie umożliwiać wysyłanie (i odczytywanie) wiadomości prywatnych (do 255 znaków) między użytkownikami, a skrzynka nieodczytanych wiadomości będzie przechowywać max 5 wiadomości. Po przepełnieniu klient ma uzyskać informację o jej przepełnieniu

5. Informacje (użytkownicy, hasła, wiadomości) - przechowam w formacie json w plikach na dysku

 
 
 
 

Śledź moją aktywność na LinkedIn


 
 
 
 
 

Zapisz się na mój newsletter


👋
Jeśli masz jakieś sugestie lub pytania, proszę napisz do mnie wiadomość: kuba@javampokaze.pl