Witam, mam pytanie. Tworzę aplikację do obsługi bazy danych w której to serwer odpowiada za komunikację z bazą poprzez JDBC a klient łączy się z serwerem i serwer tylko wysyła konkretne dane z bazy w postaci obiektów. W jaki sposób rozwiązać komunikację serwer- klient żeby serwer wiedział które dane wysłać do klienta np. klient prosi o dane z tabeli uzytkownicy i serwer o tym wie i wysyła w odpowiedzi dane w postaci ArrayListy? Szukałem w necie ale nigdzie nie mogłem czegoś takiego znaleźć
Z góry dzięki za pomoc
Nigdzie nie znalazłeś informacji na temat komunikacyjnych technologii middleware? Jasne... Można to zrobić na milion sposobów, żeby wymienić najpopularniejsze:
- sockety
- rmi / corba / ice
- JMS
- webservice REST
- webservice SOAP
Sockety mniej więcej wiem jak działają ale dalej nie wiem skąd serwer powinien wiedzieć co wysłać. Czy powinno być to na zasadzie że wysyłamy mu jakiś String czy liczbę i na tej podstawie on wysyła konkretne dane?
Jeśli dobrze Cię zrozumiałem to robię w tym momencie podobny projekt. Uogólniając - mam klasy rozszerzające interfejs Message
, czyli QueryMessage
i DataMessage
. Klient wysyła przez ObjectOutputStream
obiekt klasy QueryMessage
, w którym możesz sobie albo zamieścić gotowe zapytanie, albo jakieś kryteria i zapytanie stworzyć na serwerze. Potem z serwera wysyłasz DataMessage
, który ma w sobie obiekty zapakowane w listę, np. ArrayList
. Aczkolwiek nie wiem jak z kwestią bezpieczeństwa takich operacji, tzn. czy zapytanie w Stringu może być, czy wypadałoby je zaszyfrować. Tutaj trzeba by poczekać na wypowiedź kogoś bardziej kompetentnego niż ja :P. W moim przypadku obydwie strony to aplikacje desktopowe, nie wiem jak w to wygląda w webie (mógłbyś wygooglować rzeczy, które podał Ci Shalom).