Semestrální práce:

Vytvořte distribuovaný systém pro diskusní skupiny.

Základní úloha:

Vytvořte CORBA server, který bude zajišťovat fungování diskusních skupin a jednoduchého klienta k tomuto systému.
Server bude implementovat dva druhy rozhraní:
  1. Rozhraní zastupující server jako celek. Referenci na implementaci tohoto rozhraní server zaregistruje u služby Naming Service.
    Operace tohoto rozhraní budou umožňovat:
  2. Rozhraní reprezentující jednu diskusní skupinu.
    Operace tohoto rozhraní budou umožňovat:
Klient bude implementovat rozhraní, které bude umožňovat následující operace:
Ošetřete v serveru případ, kdy klient přestane přijímat CORBA volání (byl ukončen) aniž by se odhlásil z diskusních skupin - tento fakt by neměl výrazně ovlivnit zasílání zpráv ostatním klientům.

Rozšířená úloha (varianta A):

Přidejte k rozhraní diskusní skupiny operaci, která umožní propojit dvě diskusní skupiny - zpráva zaslaná do jedné se zašle i do všech (transitivně) propojených skupin. Ošetřete cyklus.

Přidejte k rozhraní klienta operaci, která klienta přihlásí do všech skupin, do kterých je přihlášen jiný klient - "zkopíruje jeho přihlášení".

Upřesnění: Jedná se o operaci CORBA rozhraní klienta, uživatelské rozhraní by mělo umožnit ji zavolat lokálně přes "své" CORBA rozhraní, i zavolat ji na "cizím" rozhraní.

Rozšířená úloha (varianta B):

Zajistěte, aby si klient i server externě ukládali stavová data (klient seznam, všech diskusních skupin, kde je přihlášen, server seznam všech diskusních skupin a uživatelů v nich přihlášených) tak, aby restart klienta (serveru) byl pro server (klienta) transparentní.

Tj., po restartu serveru na něm budou existovat všechny původní diskusní skupiny a v nich budou přihlášení všichni klienti, kteří tam byli původně přihlášeni. Po restartu klienta bude korektně vracet seznam diskusních skupin, kam je přihlášen (a obnoví přihlášení, pokud jej server mezitím odhlásil).

Stačí, když budete podporovat úmyslný restart, nemusíte být schopni řešit pád v libovolný okamžik.

Datum odevzdání: 20.4.2004

Nahlášení složení týmů: do 30.3.2004

Způsob odevzdání:

Vypracované zápočtové úlohy mi zašlete e-mailem. Protože zadání záměrně nespecifikuje všechny detaily, musí odevzdaná práce obsahovat dokumentaci (tedy stručný popis toho co váš program dělá, jak to dělá, jakým způsobem se to pouští a ovládá). Vzhledem k jednoduchosti úlohy by dokumentace neměla být moc dlouhá (ideální délka je 1 strana A4).

Hodnocení, podmínky udělení zápočtu:

Za základní úlohu lze získat maximálně 40 bodů, za bonusovou úlohu pak maximálně dalších 13 bodů. Za každý den zpoždění oproti datu odevzdání se strhávají 4 body. Nutnou a postačující podmínkou udělení zápočtu je vyřešení alespoň základní úlohy. U zkoušky bude 100 bodů "tvořit" 40% známky (tj. maximálně možných 53 bodů bude tvořit 53% známky).