Paradygmaty programowania - ćwiczenia
Lista 12
1. Napisz serwer (obiekt portu), który każdy otrzymany komunikat wyświetla w oknie przeglądarki.
2. Napisz serwer, przeprowadzający ewaluację wyrażeń arytmetycznych.
Typ wyrażeń <Expr> jest zdefiniowany następująco (patrz lista 6, zad. 3):
<Expr> ::= const(<Int>) | var(<Atom>) | add(<Expr> <Expr>) | mult(<Expr> <Expr>) Środowisko jest reprezentowane przez listę asocjacyjną.
Żądanie jest przesyłane do serwera w rekordzie calc i zawiera środowisko, wyrażenie do obliczenia i zmienną, która ma być związana z odpowiedzią serwera. Zakładamy, że środowisko zawiera wszystkie potrzebne zmienne. Np.
{Send Server calc( [x#1 y#4] mult(add(var(x) const(2)) var(y)) Answer)}
{Browse Answer}
wyświetla 12. Patrz wykład 12, str. 28.
3. Na wykładzie 12 (str. 28-29) został przedstawiony przykład wykorzystujący synchroniczny protokół RMI. Zmodyfikuj program klienta z tego przykładu tak, żeby wykorzystywał on
asynchroniczny protokół RMI, tzn. wysyłał żądania do serwera bez oczekiwania na odpowiedź na poprzednie żądanie.