konto usunięte

Temat: Metody komunikacji w aplikacji klient-serwer

Witam. Mam do napisania (własna inicjatywa) gre karcianą w którą będzie można zagrać przez internet.Dodatkowo będzie można "siedzieć" przy kilku stolikach jednocześnie. Ma to być aplikacja desktopowa. Zaplanowałem już za co będzie odpowiedzialna strona klienta i serwera, więc to nie problem. Zastanawiam się jaką wybrać metodę komunikacji. Do tej pory napisałem tylko proste aplikacje (chat, komunikator )korzystające z TCP/UDP. Myślałem nad WebServices i SOAP, ale kompletnie nie mam o tym pojęcie, czytałem jedynie tutorial, nie wiem nawet czy to dobry wybór. Czy powinienem wybrać tę metodę czy może jeszcze jakąś inną ?
Drugi problem. Chciałbym postawić "gdzieś" serwer. Jak to jest w przypadku TCP/UDP (oprócz tego że uruchamiam aplikacje serwera ), a jak w WebServices ? Nic o tym nie wiem :/

Proszę o jakieś rady, przydatne linki, cokolwiek.

Temat: Metody komunikacji w aplikacji klient-serwer

rada od starego piernika:
skoro jestes studentem, i robisz ten projekt dla siebie - uzyj googli i czytaj, czytaj i czytaj.... teraz masz najlepszy czas zeby sie czegos dowiedziec (nie tylko z 'wlasnej' technologii, ale takze z jej otoczenia).
Tomasz Niewolik

Tomasz Niewolik
Programista/Projekta
nt

Temat: Metody komunikacji w aplikacji klient-serwer

Myślę, że Web Service może być. Polecałbym Ci jeszcze poczytanie o JMS - queue i topic, bo czuję, że mogą się przydać.

Temat: Metody komunikacji w aplikacji klient-serwer

Do gry karcianej to ja polecałbym raczej komunikacje gdzie można robić "push data". WS + JMS może być jak projekt do nauki ale w real world raczej nie przejdzie. Serializacja do xmla i zwykly socket po obu stronach.
Igor Janicki

Igor Janicki Software maker.
Java, Perl ...

Temat: Metody komunikacji w aplikacji klient-serwer

a applet-servlet ?
Tomasz Niewolik

Tomasz Niewolik
Programista/Projekta
nt

Temat: Metody komunikacji w aplikacji klient-serwer

Michał P.:
Do gry karcianej to ja polecałbym raczej komunikacje gdzie można robić "push data". WS + JMS może być jak projekt do nauki ale w real world raczej nie przejdzie. Serializacja do xmla i zwykly socket po obu stronach.

Oczywiście zakładałem, że projekt ma charakter edukacyjny.

konto usunięte

Temat: Metody komunikacji w aplikacji klient-serwer

Michał P.:
Do gry karcianej to ja polecałbym raczej komunikacje gdzie można robić "push data". WS + JMS może być jak projekt do nauki ale w real world raczej nie przejdzie. Serializacja do xmla i zwykly socket po obu stronach.
Niby robie to dla siebie ale mimo wszystko chciałbym się nauczyć czegoś co przyda mi się w pracy. Dlaczego w prawdziwym projekcie to nie przejdzie ? Co to znaczy "push data" ?
Jacek Lis

Jacek Lis Senior Technical
Lead, EY (dawniej
Ernst & Young)

Temat: Metody komunikacji w aplikacji klient-serwer

Zerknij na to - http://mina.apache.org/

Temat: Metody komunikacji w aplikacji klient-serwer

Po pierwsze http://tinyurl.com/24yzrtp

Po drugie:

Przy wykorzystaniu tylko webserwisu masz komunikację tylko jednostronną. Klient może prosić serwer o zmiany. To jest pull data - czyli ciągniesz dane. Natomiast przy połączeniu socketowym które jest ciągłe gdzie masz jakiś protokół oparty o np o xml i po obu stronach serializacje i deserializacje do jakiś obiektów serwer może wysłać dane do klienta powiadamiając go że ktoś np rzucił kartę na stół. Jest to o wiele bardziej wydaje bo nie zabija serwera requestami co parę sekund od setek klientów i dodatkowo jest dużo szybsze bo wiadomość jest propagowana do klienta natychmiast o zmianie stanu a nie dopiero wtedy kiedy on poprosi.

To samo można osiągnąć poprzez WS i JMS - web serwisem klient prosi o jakieś dane przy wywołaniach synchronicznych a poprzez jms dodaje powiadomienia asynchroniczne (ktoś rzucił kartę). Natomiast nikt nie pozwoli Ci wystawić jmsa na świat by klienci mogli się do niego łączyć z internetu. Do tego dochodzi kwestia adresowania wiadomości w JMS i samej skalowalności tego rozwiązania. Ale to raczej temat nie na projekt na uczelnie.

Po trzecie: to co napisałem jest już napisane na wielu innych stronach wystarczy wygooglać.

Temat: Metody komunikacji w aplikacji klient-serwer

Jacek Lis:
Zerknij na to - http://mina.apache.org/


Fajne fajne

Jak ja pisałem taką aplikację to tego jeszcze nie było.
Sami pisaliśmy swój serwer nio - fajna zabawa.

konto usunięte

Temat: Metody komunikacji w aplikacji klient-serwer

Po pierwsze do tego zastosowania WebService się nie nadaje. Rozumiem, że zależy Ci na komunikacji typu Push/Pull. Aplikacja karciana otrzymuje powiadomienia od serwera o zmianach i sama wysyła powiadomienia do serwera. Powiadomienia mają charakter krótkich komunikatów pojawiających się często.

Po drugie, proponuję otwarte rozwiązanie bazujące na XMPP.

1. Klient XMPP: http://www.igniterealtime.org/projects/smack/index.jsp

2. Serwer, np. Google App Engine obsługuje XMPP i masz za jednym zamachem postawiony serwer.

Dzięki temu, swoją aplikację do gry możesz zrobić też na Androida.

Robert T.:
Witam. Mam do napisania (własna inicjatywa) gre karcianą w którą będzie można zagrać przez internet.Dodatkowo będzie można "siedzieć" przy kilku stolikach jednocześnie. Ma to być aplikacja desktopowa. Zaplanowałem już za co będzie odpowiedzialna strona klienta i serwera, więc to nie problem. Zastanawiam się jaką wybrać metodę komunikacji. Do tej pory napisałem tylko proste aplikacje (chat, komunikator )korzystające z TCP/UDP. Myślałem nad WebServices i SOAP, ale kompletnie nie mam o tym pojęcie, czytałem jedynie tutorial, nie wiem nawet czy to dobry wybór. Czy powinienem wybrać tę metodę czy może jeszcze jakąś inną ?
Drugi problem. Chciałbym postawić "gdzieś" serwer. Jak to jest w przypadku TCP/UDP (oprócz tego że uruchamiam aplikacje serwera ), a jak w WebServices ? Nic o tym nie wiem :/

Proszę o jakieś rady, przydatne linki, cokolwiek.Paweł Grotowski edytował(a) ten post dnia 14.08.10 o godzinie 09:23
Jakub Joras

Jakub Joras Student,
Politechnika
Poznańska

Temat: Metody komunikacji w aplikacji klient-serwer

Gdyby użył XMPP i Google App Engine, to czy dałoby się zrobić tak, aby mogli grać "goście" bez zakładania konta Jabbera, czy byłoby to dostępne tylko dla osób posiadających takie konto?

konto usunięte

Temat: Metody komunikacji w aplikacji klient-serwer

Malo tego, czy przypadkiem uzytkownicy nie musza wtedy miec konta w obrebie tego samego serwera?
Jakub Joras:
Gdyby użył XMPP i Google App Engine, to czy dałoby się zrobić tak, aby mogli grać "goście" bez zakładania konta Jabbera, czy byłoby to dostępne tylko dla osób posiadających takie konto?

Następna dyskusja:

Program klient-serwer. Test...




Wyślij zaproszenie do