Projekt z architekturą klient-serwer - jak jej użyć?

0

Mam do napisania projekt wykorzystujący architekture kient-serwer. Aktualnie pisze też drugi projekt w java'ie na inne zajęcia i chciałbym je połączyć razem. Aktualnie próbuje napisać coś na wzór organizera studenta (kalendarz, dodawnie swojego planu zajęci itp + każdy własne konto (MySQL)). I tutaj mam problem. Jak w tym projekcie użyć architektury klient-serwer?

0

aplikacja na androida/dektop z prostym gui jest klientem, a aplikacja do której wysyłasz informacje np: {id:1, date: 2014:12:12, task:"zrobic pierogi"} i ona to zapisze do bazy danych, będzie Twoim serwerem.

0

okej ale podsuniesz jakieś przykłady co mogę przesyłać w tym przykładzie?

//edit
wysyłanie czegoś na serwer a potem do bazy chyba jest bez sensu. BO przecież w kiencie moge sprawdzić poprawność danych itp. Pewnie się mylę - proszę o wytłumaczenie.

1

klient nie komunikuje się z bazą tylko z serwerem a dopiero serwer z bazą. Między klientem i serwerem możesz użyć np. soap.
Co ma być wysyłane to musisz sam określić - przecież my nie wiemy co ta aplikacja ma robić.

//edit
Czy ma sens czy nie to dyskusja na kiedy indziej :). Zaletą tego rozwiązanie jest to, że masz zunifikowany interfejs dostępu do danych. Nie pozwalasz bezpośrednio mazać po bazie i jesteś w stanie weryfikować przychodzące zapytania.

0

Czyli np zakładanie konto. Wysyłam dane sprawdzane przez klienta na serwer a serwer do bazy tak? 2) czy to serwer sprawdza poprawność danych?

1

nooo, to logiczne nie ? wysyłasz, okazuje się że w tym terminie już coś jest(chociaż to powinno być wykryte przez klienta) zwracasz informacje "sorry rysiu ale termin jest już zajęty".

1

raczej sprawdzać powinien to już serwer - wtedy jeśli masz klienta na pc, www i np. androida nie musisz implementować sprawdzania 3 razy.

Jak to działa - web service ma np. metodę DodajUsera z odpowiednimi parametrami (login, hasło, nazwa, ...). Programista klienta widzi właśnie tę metodę i ją musi zaimplementować. Programista severa musi tak zrobić, żeby po wywołaniu DodajUsera odpowiedni rekord został dodany np. do bazy

0
niezdecydowany napisał(a):

(...)(chociaż to powinno być wykryte przez klienta) (...)

Czyli klient też musi mieć dostęp do bazy.
Sumując wychodzi na to że klient i serwer musi mieć dostęp do bazy, chyba że klient sprawdzał by poprawność danych przez serwer ;p
Gubię się już w tym :(

0

nie - to serwer musi mieć metodę typu ZajeteTerminy czy Terminy czy jak ją nazwiesz, która Ci zwróci już dodane zadania/czy co tam masz w jakimś zakresie danych. Natomiast aby serwer mógł takie dane zwrócić to musi je pobrać z bazy

EDIT: przestań usuwać swoje posty bo dyskusja zaczyna idiotycznie wyglądać :P

2
shimizu napisał(a):

wysyłanie czegoś na serwer a potem do bazy chyba jest bez sensu. BO przecież w kiencie moge sprawdzić poprawność danych itp. Pewnie się mylę - proszę o wytłumaczenie.

Komunikacja w ten sposób ma 2 zalety

  1. funkcje bazodanowe mają ukryty interface - nie interesuje Cie jak to działa i które tabele musi uaktualnić i jak przy zapisie jakiś danych - bo zostanie to zrobione przez funkcje, a jeśli będziesz musiał zrobić jakaś zmianę nie poptrawiasz wszystkich klienckich programow, tylko program serwerowy.
  2. względy bezpieczeństwa - serwer ma dostęp do bazy, natomiast z zewnątrz program ma dostęp tylko do serwera.

Inne wykorzystanie klient/serwer - to np w programie tworzysz port za pomocą którego po jakimś protokole możesz sterować i dzięki temu możesz np zsynchronizować pracę z innym programem wykonującym coś innego.

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