Aplikacja z MySQL z wieloma użytkownikami - jakie rozwiązanie?

0

Zastanawiam się nad pewnym rozwiązaniem swojego programu. Cały czas uparcie dążyłem do stworzenia aplikacji która nie będzie wymagała zainstalowania , czy ustawienia na jednym z komputerów aplikacji matki do której to podłączaliby się klienci. Tylko od razu wpisując dane dostępowe do serwera mysql mogli już korzystać z programu.

mysql.jpg

Tutaj mam pytanie do osób którzy już robili takie programy. Czy to jest dobre rozwiązanie aby pominąć program "serwer" ? (Pomijam takie rzeczy jak ochrona danych dostępowych do serwera bo z tym już sobie poradziłem).

Zastanawia mnie jedynie fakt iż pomijając program "serwer" stoję przed bardzo trudnym rozwiązaniem aby sprawić by aplikacja z bazą mysql działała jak najbardziej zbliżenie do trybu w czasie rzeczywistym. NP. Jeden klient zaczyna modyfikować kolejkę wierszy i jak po informawać o tym na bieżąco innych.

Dodam jeszcze że korzystam z komponentów MyDac

0

mysql2.jpg

Mam jeszcze pytanie nad takim rozwiązaniem jak powyżej. Pomijamy aplikacje serwer. Jeżeli jakikolwiek klient zaczyna modyfikować kolejkę wierszy w bazie mysql. To wysyła to po przez np protokół tcp do innych klientów tzn informuje innych klientów o tym co robi lub co zrobił.

0

Rozwiązanie z serwerem pośredniczącym jest najlepsze. Piszesz, że nie bierzesz pod uwagę kwestii bezpieczeństwa a powinieneś.

Rafał D napisał(a):

Pomijam takie rzeczy jak ochrona danych dostępowych do serwera bo z tym już sobie poradziłem

Jakie to rozwiązanie? ukryłeś hasło do SQL'a w programie/rejestrze/pliku? to nie jest zabezpieczenie.

0

A jakich komponentów użyć do tej komunikacji? Indy idTCPServer i idTCPClient? Tam chyba można przesyłać tylko teksty (stringi) lub wartości. A ja musiałbym przesyłać całe tablice, rekordy czy tabele które są w mysql. Komponenty nie muszą być darmowe.

0

poczytaj o DATASNAP-ie i aplikacjach trójwarstwowych , niestety wymagają narzędzi w wersji ENTERPRISE lub wyższej .
wariant z serwerem aplikacji ma jeszcze tę zaletę, że dużą część logiki przetwarzania danych można zawrzeć w serwerze , aplikacja kliencka wysyła wyłącznie zapytania lub paczki danych do przetworzenia a dostaje gotowe wyniki , zmniejsza to ruch w sieci .
Bazując na tej technologii, zrobiliśmy system do obsługi sieci sklepów z lokalnymi (sklepowymi) bazami i z jednym centralnym serwerem w siedzibie firmy , a cała synchronizacja danych pomiędzy placówkami handlowymi a centralnym serwerem odbywa się przez internet.
a jak by co to proszę o kontakt na priv

usunięcie cytowania całego poprzedniego posta - fp

0

hasło klucz to "Trójwarstwowa aplikacja Delphi"
Pozdro

0

Dziękuję za podpowiedzi i przykłady. grzegorz_so dzięki za przykładową aplikację. Przeczytałem o datasnap i dokładnie wiem co to są aplikacje trójwarstwowe. Pisanie programu idzie pełną parą. Tylko od razu na wstępie chciałbym dowiedzieć się jeszcze jednej rzeczy której niezbyt udało mi się znaleźć u wujka google. Mianowicie jak sprawić aby serwer powiadomił jakąś informacją wszystkich użytkowników / klientów?

Przykład problemu.

3 klientów + serwer + baza danych.

a) Wszyscy 3 klienci mają wyświetloną aktualnie tabelę np. "Moi znajomi"
b) klient 2 dodaje nowego znajomego do tabeli "Moi znajomi" ( serwer otrzymuje wiadomość i dodaje wpis do tabeli po czym zwraca wynik klientowi 2 iż znajomy został dodany )
c) w tym momencie klient 1 i 3 niewie o tym że dodano znajomego.

Czy istnieje jakiś sposób aby serwer powiadomił, wysłał jakieś informacje do wszystkich podłączonych klientów?
Czy jedynym rozwiązaniem jest utworzenie wątku w aplikacji klienta który by co jakiś czas odpytywał serwer czy coś się zmieniło?

0

Jakie są alternatywy do datasnap tak aby rozwiązać ww problem tj:

3 klientów + serwer + baza danych.

a) Wszyscy 3 klienci mają wyświetloną aktualnie  tabelę np. "Moi znajomi"

b) klient 2 dodaje nowego znajomego do tabeli "Moi znajomi" ( serwer 
otrzymuje wiadomość i dodaje wpis do tabeli po czym zwraca wynik 
klientowi 2 iż znajomy został dodany )

c) w tym momencie klient 1 i 3 nie wie o tym że dodano znajomego. (serwer musi ich powiadomić)

Czy istnieje jakiś sposób aby serwer powiadomił, wysłał jakieś informacje do wszystkich podłączonych klientów?

Może wykorzystać np indy aby tak się komunikować ( coś na wzór chat-a ) ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1