Zadanie na pracownię

Zadaniem pracowni jest samodzielne zaimplementowanie wybranej aplikacji w omawianych środowiskach obiektów rozproszonych. Temat aplikacji jest dowolny, można wybrać jeden z zaproponowanych tematów, można samodzielnie coś zaproponować, choć należy to uzgodnić z prowadzącym pracownię. Daną aplikację będzie należało zaimplementować więc w czterech środowiskach: JavaRMI, CORBA, DCOM i .NET.

Częścią realizacji zadania jest stworzenie dokumentacji i jest to pierwsze zadanie do wykonania. Za każdą z tych części będzie można otrzymać do 20 pkt, do zdobycia jest więc 100 pkt przez cały semestr.

Jak widać, za zrealizowanie programu w każdej z tych technologii można uzyskać 20 punktów, a kolejne 20 punktów można otrzymać za napisanie dokumentacji. O dokumentacji można przeczytać dalej. Ponieważ naturalną tendencją będzie zapewne realizacja jednego zadania we wszystkich technologiach, dlatego wystarczy przedstawić jedną dokumentację, nawet jeśli realizuje się kilka zadań.

W przypadku niedotrzymania terminu oddania dostarczenie zadania w terminie późniejszym powoduje obniżenie punktacji o połowę. Prace oddane później niż 2 tygodnie po terminie nie będą wogóle oceniane.

Cały projekt ma być napisany samodzielnie. W wypadku wykrycia plagiatu konsekwencją jest nieczyste sumienie, zepsuta opinia i oczywiście niezaliczenie przedmiotu. Nie jest uważane za plagiat skorzystanie z cudzego kodu (o ile autor zezwolił na to), jeżeli w programie wyraźnie zostanie zaznaczony odpowiedni fragment wraz ze źródłem. Jednak rozmiar 'cytatów' w programie nie może przekroczyć 20% rozmiaru programu.

Programy mają być oddawane zarówno z programem źródłowym jak i w postaci skompilowanej wraz z informacją o systemie operacyjnym i użytym kompilatorze.

Terminy oddawania poszczególnych zadań

Technologia/DokumentacjaTerminPunkty
Dokumentacja23 października20
Java RMI27 listopada20
CORBA18 grudnia20
DCOM8 stycznia20
.NET22 stycznia20

Ocena końcowa

Ocena końcowa zależy od sumy zdobytych przez cały semestr punktów.
PunktyOcena
69< . bdb
59< . <70db+
49< . <60db
39< . <50dost+
29< . <40dost
0< . <30ndst

Dokumentacja

Części składowe dokumentacji
Opis programu; jeden lub dwa akapity
Spis klas z podziałem na klasy klienta i klasy serwera
Ta część winna zawierać spis klas wraz z jednoakapitowym opisem klasy. W przypadku klas udostępniających usługi na zewnątrz proszę podać spis i krótki opis metod usługowych.
Nie jest konieczne podanie wszystkich klas, jakie będą implementowane; w szczególności nie jest konieczne podawanie klas specyficznych dla poszczególnych środowisk.

Propozycje projektów

System do rozwiązywania problemów kombinatorycznych

Aby rozwiązać niektóre problemy natury kombinatorycznej konieczne jest zwykle zbadanie wszystkich możliwości i wybranie najlepszej z nich. Ze względu na naturę tych problemów takie przeszukiwanie trwa bardzo długo. Dlatego wygodnie jest podzielić całą przestrzeń poszukiwań na fragmenty, które będą przeszukiane przez różne komputery. Zaprojektuj i zrealizuj taki system składający się z: centralnego 'serwera', oraz wielu agentów mogących wykonać wskazany fragment obliczeń. Każdy agent po uruchomieniu rejestruje się w serwerze. Następnie serwer przydziela odpowiednie kawałki obliczeń agentom. Po zakończeniu obliczeń serwer podaje znaleziony wynik. Naturalnymi problemami do realizacji w takim systemie są np. grafowe problemy optymalizacyjne takie jak problem komiwojażera.

Gry sieciowe

Chodzi tu o system kojarzący w sieci graczy w jakąś grę, np. w statki i nadzorujący wyniki, np. prowadzący rozgrywki ligowe i tabelę punktacji (trzeba wtedy zadbać, aby kojarzenia par odbywały się zgodnie z przyjętymi zasadami). Graczami tutaj są programy na różnych hostach, które rejestrują się na serwerze i grają między sobą.

Zdalny dostęp do katalogu

Napisz program który umożliwia poprzez wywołania odpowiednich metod przeglądanie katalogów i plików na zdalnym serwerze. Przyjmij, że jest możliwe otwarcie kilku katalogów na różnych serwerach i kopiowanie plików między nimi. Pewną odmianą teo zadania może być edytor pliku znajdujący się na odległym serwerze.

Baza danych

Zrealizuj przykładową bazę danych do której dostęp jest możliwy poprzez wywołanie odpowiednich metod (może to być baza relacyjna lub obiektowa, do wyboru). Przyjmij, że możliwy jest dostęp jednocześnie kilku klientów do bazy danych, a jednocześnie jeden klient może korzystać z kilku różnych baz danych.

Uwaga: można zaproponować własny projekt, jednak należy go wcześniej uzgodnić z prowadzącym.