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: