WCF cz.2

Transkrypt

WCF cz.2
Komponentowe Systemy Rozproszone
2012/2013
Instrukcja laboratoryjna cz.6
Model programistyczny WCF cz.2
Prowadzący: Tomasz Goluch
Wersja: 3.0
Zadanie domowe z WCF cz.2:









Uzupełnić implementację serwera COM o funkcje wymagane do przeprowadzenia
kompletnej rozgrywki w wybraną grę.
Napisać system do gry w architekturze klient-serwer WCF.
Serwer powinien być hostowany w pliku .exe (self-hosting) udostępniać następujące
funkcjonalności:
o logowanie – którą gracz wywołuje tę metodę bezpośrednio po „podłączeniu”
się do serwera, aby dowiedzieć się, czy jest graczem pierwszym (jeżeli
podłączył się jako pierwszy) czy drugi albo, że gra już się rozpoczęła.
o rozgrywka – pilnowanie kolejności posunięć graczy, sprawdzenie czy gracz
wykonał poprawny ruch oraz czy gra się nie skończyła, informowanie o ruchu
przeciwnika oraz wyniku gry.
Serwer powinien pozwalać na podłączenie maksymalnie dwóch klientów, przy próbie
podłączenia trzeciego powinien rzucać wyjątek.
Powinien udostępniać interfejs zwrotny klientowi za pomocą którego informuje go o
posunięciu przeciwnika oraz realizować binding za pomocą: http, tcp i potoków
nazwanych.
Czas życia serwera powinien być ustawiony na sesję bądź singleton.
Zaimplementować klienta (gracza) w C# – wybór interfejsu graficznego do wyboru:
WPF, Windows Forms, konsola, inne..., pozwalającego na zalogowanie (przycisk
loguj, ewentualnie z możliwością podania adresu serwera), wyświetlanie planszy,
wykonywanie posunięć oraz wyświetlenie komunikatu informującego o zakończeniu
gry (wyświetlenie informacji: wygrana/przegrana).
Aby serwis WCF mógł korzystać z generatora posunięć (serwer COM w C++ ), należy
wykorzystać assembly „opakowujące”.
Problem synchronizacji (który gracz w danym momencie wykonuje ruch) powinien
być rozwiązany za pomocą interfejsu zwrotnego.
Diagram komponentów: