Koncepcja komunikacji client /server

Po przemyśleniach doszedłem do wniosku, że jednak komunikacja klienta bezpośrednio z serwerem bazy danych nie jest do końca dobrym pomysłem. Sporą wadą takiego podejścia jest to, że trzeba otworzyć połączenie do bazy danych być może nawet publicznie w internecie. Zdecydowałem, że po stronie serwera będzie trzeba uruchomić kod, który będzie komunikował się ze stroną kliencką. Dodatkowym plusem tego rozwiązania jest to, że będę mógł nawet przy pomocy prostego keeplive’a monitorować dostępność serwera wpiętego do panelu.

To zrodziło kolejny problem. W jaki sposób przesyłać dane konfiguracyjne? Pierwszy pomysł, chyba najbardziej oczywisty: przesyłanie całych struktur. Okazało się to dość złożonym tematem, gdyż przesyłanie danych binarnych przez sieć wymaga położenia szczególnej uwagi na big endian i little endian 😉 Ale w trakcie poszukiwać natknąłem się na pomysł, który mi się spodobał: json 🙂 Koncepcja jest o tyle dobra, że wystarczy zbudować odpowiednio sformatowany string i przesłać go z bufora do socketu 🙂

Przykładowy json mógłby wyglądać tak:

[{datatype:www,package:{srv_name:angrybits.pl,srv_alias:www.angrybits.pl,doc_root:/var/www/angrybits.pl/htdocs}}]

Stworzyłem kawałek kodu, który takiego jsona obrabia i tworzy fragment pliku konfiguracyjnego 🙂 Tak wiem, nie zwalniam tutaj zaalokowanej pamięci, obiecuję, że w trakcie implementacji tej koncepcji zrobię to na pewno 😉

 

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *