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.