Technologia komunikacji ap. sieciowych

0

Witam.

Moje pytanie nie jest bardzo szczegółowe - chodzi o to, jaką technologię/typ komunikacji wybrać do komunikowania się 2 lub więcej aplikacji. Chcę np zrobić prostą gierkę jakąś, ktoś tworzy hosta, podłączają się gracze i jakoś tam się to dzieje. Chodzi o to, czy można to jakoś fajnie robić przy użyciu RMI czy trzeba na socketach sobie zrobić jakiś protokół. Domyślam się, że drugi sposób to przeszłość i fajnie przy użyciu zdalnie wywołanych metoda można to zrobić. Na co się nakierować?:) A może jest jeszcze coś innego?

Wszelakie serwery aplikacji j2ee odpadają, to musi być standalone :) POzdrowka

0

i rmi i sockety beda dobre. ja to widze tak: rmi to technologia wywolywania zdalnych obiektow, a sockety to sposob przesylania danych (roznych, np klasy i metody do wywolania, jak w rmi ;-) - rmi to pod spodem sockety, jak wszystko co w sieciowe ) zalezy co chcesz robic.

0
  1. RMI
  2. WebServices
  3. Sockety, ale to dla tych co się lubią bawić
  4. W grach wieloosobowych JMS i rozgłaszanie po subskrybentach danego pokoju.
0

Ok fajnie. A jeszcze taka sprawa :

Mam sobie serwer i działa sobie jakaś gra, która oczekuje na kolejne decyzje od użytkowników. RMI działa w stylu statless beanow, tak? Chodzi o uwierzytelnienie decyzji gracza, w sensie czy jest jakiś fajny sposób na sesję? Gdybym trzymał na socketach połączenie to mógłbym sobie odpuścić uwierzytelnianie za każdym razem dopóki połączenie nie zostanie zerwane? W rmi muszę za każdym razem wysyłać jakieś dane uwierzytalniajace?

0

Na wstępie zaznaczam, że nie wiem jak to jest z bezpieczeństwem takiego rozwiązania, ale u mnie działa.

public interface Authorization extends Remote {
    public Session getSession(String username, String password) throws RemoteException;
}

public interface Session extends Remote {
    //....
}

//Server
Authorization authorization = new RemoteAuthorization();
Naming.rebind("//localhost/authorization", authorization);

//Client
Authorization authorization = (Authorization) Naming.lookup("//localhost/authorization");
Session session = authorization.getSession("username", "password");

W ten oto sposób serwer ma jeden obiekt uwierzytelniający klientów (Authorization).
Jak wszystko jest ok, tworzy sobie obiekt sesji (Session) dla każdego zalogowanego użytkownika.

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