Dzięki prostej wersji systemu Chat użytkownik może wysyłać wiadomość do osoby korzystającej z tej usługi oraz odbierać wiadomości skierowane do niego. Schemat elementów aplikacji można zobaczyć na rys. 6.4. Aplikacja składa się z:
Na początku użytkownik loguje się do systemu wybierając pseudonim. Informacja z pseudonimem zostaje wysłana do serwisu poprzez serwer proxy, który w postaci krotki wstawia ją do przestrzeni krotek. Dzięki temu użytkownik otrzymuje swój identyfikator. Serwis Chat rejestruje nowego użytkownika i generuje formularz opisany w języku MXML (patrz rys. 6.6). Wstawia do opisu identyfikator użytkownika, który zgłosił się do serwisu i przesyła go do przestrzeni krotek w postaci krotki. Klient pobiera opis formularza przez serwer proxy z przestrzeni krotek i interpretuje go, w wyniku czego otrzymuje formularz (patrz rys. 6.5), za pomocą którego ma możliwość odbierania i wysyłania wiadomości. Użytkownik, aby wysłać wiadomość, podaje nazwę użytkownika i treść wiadomości, którą wysyła jako krotkę
Na rysunku 6.5 przedstawiam formularz do wysyłania i odbierania wiadomości. Formularz składa się z pola tekstowego To:, do którego użytkownika wpisuje nazwę odbiorcy wiadomości, a pod nim pole tekstowe na wpisanie wiadomości. Pole testowe From: wyświetla nazwę użytkownika, od którego przyszła wiadomość i treść wiadomości. Można określić nazwę użytkownika, od którego chcemy odebrać wiadomość, przez wpisanie go w pole From:. Przycisk Send służy do wysłania wiadomości, przycisk Receive -- do odbioru wiadomości, zaś przycisk Exit powoduje zakończenie aplikacji i wylogowanie.
Na rysunku 6.6 przedstawiam opis interfejsu użytkownika dla aplikacji CoSMoL@Chat. Znacznik TUPLE z parametrem name o wartości to to definicja krotki, która jest wstawiana do przestrzeni krotek, gdy jest wysyłana wiadomość przez klienta, zaś znacznik TUPLE o wartości from parametru name określa krotkę-szablon, służącą do odbioru wiadomości z przestrzeni krotek. Znacznik
<ACTION type="take" name="from"/>opisuje pobieranie krotki o nazwie from z przestrzeni krotek.
Znacznik
<ACTION type="write" name="to"/>opisuje wstawianie krotki o nazwie to do przestrzeni krotek.
<ACTION type="set" object="to"> <ATTR name="to"><VALUE name="tto" attr="label"/></ATTR> <ATTR name="msg"><VALUE name="ttomsg" attr="label"/></ATTR> </ACTION>opisują wypełnienie pola obiektu to -- w tym przypadku jest to krotka do wstawienia do przestrzeni krotek. Zawartość do wstawienia jest pobrana dla pola to z obiektu tto, który jest polem tekstowym i dla pola msg z obiektu ttomsg, który również jest polem tekstowym.