Retele de calculatoare - Proiecte propuse
Inapoi la pagina principala

Actisites (A)

Sa se scrie o aplicatie care verifica periodic daca anumite situri Web sunt active. Lista siturilor se va citi dintr-un fisier de configurare. Se vor determina situatiile in care un sit trece dintr-o stare in alta (din activ in inactiv, respectiv invers), caz in care se va transmite un e-mail (via SMTP) la o adresa specificata in fisierul de configurare. Pentru a verifica daca un sit este activ, se va folosi protocolul HTTP.

Froxy (A)

Sa se implementeze o aplicatie 'proxy' pentru protocolul FTP. Dimensiunea maxima si tipurile fisierelor stocate temporar de acest proxy se vor specifica intr-un fisier de configurare. Acest fisier va mai putea contine (optional) si o lista de situri interzise, pe baza unor politici de interzicere a accesului la ele (e.g., interzicerea accesului la siturile FTP din domeniul .uaic.ro intre orele 08-20, in zilele de luni-vineri, pentru clienti provenind din domeniul .tuiasi.ro).

MirrorFTP (A)

Sa se implementeze o aplicatie care realizeaza copii ale siturilor FTP. Se va da posibilitatea programarii actiunilor de copiere sau improspatare (refresh).

NUpdate! (A)

Sa se realizeze un server care sa permita utilizatorilor sa realizeze managementul comod al plugin-urilor/extensiilor/modulelor unei platforme sau aplicatii (e.g., CPAN, Eclipse, Firefox, PECL etc.), oferindu-le posibilitatea vizualizarii listei existente a extensiilor si download-ul versiunilor mai recente, eventual la anumite momente de timp prestabilite (specificate via un fisier de configurare).

NUpdate! Client (A)

Sa se implementeze clientul, oferind o interfata cit mai atractiva, pentru serverul Nupdate! propus.

NewC (A)

Sa se scrie un client pentru serverul NewS, conform unui protocol care sa permita: obtinerea tuturor stirilor dintr-o categorie data si/sau din toate sub-categoriile sale, solicitarea celor mai noi N stiri, inregistrarea unei stiri apartinind unei anumite categorii etc. Toate erorile de protocol vor trebui tratate: acces interzis, utilizator necunoscut, categorie eronata etc.

NewS (A)

Sa se scrie un server care ofera diverse stiri organizate in domenii si subdomenii (de exemplu, "Movies/SF/Futurology/BladeRunner" sau "Sports/Chess/Champions"). Posibilii sai clienti pot primi stiri sau pot inregistra (crea) stiri, conform drepturilor pe care le au. Astfel, clientii se impart in doua categorii: reader-client (poate doar citi stirile) si publisher-client (poate citi si publica noi stiri).

NonitorC (A)

Sa se scrie o aplicatie client care sa furnizeze in format text sau grafic informatii despre o anumita masina, folosind serviciile furnizate de NonitorS. Unele date vitale vor putea fi expediate prin e-mail administratorului de retea.

Resurse suplimentare: http://oss.oetiker.ch/mrtg/
NonitorS (A)

Sa se conceapa un server pentru a colecta regulat diferite informatii privitoare la calculatorul pe care ruleaza: tip (server, router, statie etc.), sistem, caracteristici hardware (procesor, memorie, partitii etc.), caracteristici software (procese, gradul de incarcare, utilizatori conectati, servicii oferite etc.). Pentru colectarea acestor informatii se va putea utiliza MRTG.

Resurse suplimentare: http://oss.oetiker.ch/mrtg/
Part2Part (A)

Sa se conceapa o aplicatie de tipul peer-to-peer pentru partajarea fisierelor. Programele vor folosi socket-uri pentru comunicatie, putind fi rulate pe masini diferite astfel: programul client poate fi rulat de catre orice utilizator, iar programul server poate fi rulat doar de autor, care este si responsabil cu pornirea/oprirea serviciului. Programul server trebuie sa fie capabil sa serveasca simultan mai multe cereri de transfer provenite de la "colegii" sai din retea. Fisierele dorite vor putea fi cautate - eventual folosind expresii regulate - conform unor criterii (nume, tip, lungime etc.) in cadrul "retelei".

Poshet (A)

Sa se dezvolte un client, avind o interfata atractiva, pentru serviciul standard POP3, inclusiv cu suport pentru mesaje cu fisiere atasate conform standardului MIME.

STester (A)

Sa se realizeze o aplicatie pentru testarea (semi)automata a serverelor. Se da posibilitatea specificarii unei suite de teste care sa poata fi aplicata serverelor. Dupa testarea unui server se va afisa pentru fiecare test daca s-a incheiat cu succes si se va genera un fisier de jurnalizare cu detalii referitoare la actiunile realizare astfel incat sa se poate depista cu usurinta cauza erorilor.

AntC (B)

Sa se implementeze o aplicatie client cu o interfata prietenoasa pentru AntS.

AntS (B)

Sa se implementeze o aplicatie server pentru jocul Ants. Daca un client pierde legatura cu serverul va fi substituit de catre server. Numarul maxim de partide, numarul maxim de jucatori pentru o partida, precum si alti parametri vor fi specificati intr-un fisier de configurare.

AppositoryC (B)

Sa se implementeze un client, oferind o interfata atractiva, corespunzator serverului AppositoryS.

AppositoryS (B)

Sa se realizeze un server pentru un depozit (repository) de aplicatii software. Adaugarea de noi aplicatii se va putea realiza de oricare client, specificindu-se cerintele hardware si/sau cele software (e.g., memorie RAM, procesor, platforma, biblioteci suplimentare etc.) pentru rularea acelei aplicatii. Serverul va oferi facilitati de cautare a unei aplicatii, in functie de diverse criterii (nume, cerinte, producator, statut - open source, freeware, shareware etc.).

CastDoc (B)

Sa se implementeze un server si un client pentru transformarea de documente dintr-un tip in altul. Clientul va transmite tipul documentului initial, tipul documentului final. In cazul in care serverul poate realiza transformarea, se va transmite documentul initial si se va primi documentul rezultat. Pentru server, se va utiliza un fisier de configurare in care se vor specifica transformarile suportate, precum si utilitarele care realizeaza aceste transformari. Drept exemple de utilitare, pot fi mentionate: ps2pdf, pdf2ps, latex2html, asp2php.

ChampionetC (B)

Sa se implementeze un client, oferind o interfata atractiva, pentru serverul ChampionetS.

ChampionetS (B)

Sa se implementeze un server care gestioneaza informatii privitoare la campionate din diferite sporturi (de exemplu, sah, go, rugby, tenis etc.). Se va da posibilitatea obtinerii de statistici (e.g. numarul total de victorii din toti anii sau ultimii N).

CheeClee (B)

Sa se realizeze un client pentru serverul CheeServ, oferind o interfata-utilizator atractiva. Comunicarea cu serverul in timpul jocului se va desfasura conform algoritmului de desfasurare a jocului.

CheeServ (B)

Sa se conceapa o aplicatie server care pune la dispozitie o tabla de joc si supervizeaza desfasurarea fiecarei partide de sah, actionand ca un punct central la care clientii din retea se conecteaza. Serverul determina momentul in care jocul s-a terminat si anunta castigatorul. Regulile pot fi alese (simplificate) de catre proiectant, cu conditia ca jocul sa fie interactiv.

HangmanC (B)

Sa se scrie un client, oferind o interfata atractiva, pentru serverul HangmanS.

HangmanS (B)

Sa se implementeze un server care sa permita jucarea in maniera concurenta a jocului Spinzuratoarea. Jucatorii vor fi identificati prin nume unice, putindu-se realiza si un clasament al primilor N cei mai buni jucatori. Cuvintele de ghicit pot fi cele din /usr/dict. Un utilizator cu rol de administrator va putea realiza managementul conturilor jucatorilor.

NTSF (B)

Sa se realizeze un server care sa permita unor utilizatori (maxim 4 simultan) sa joace in mod concurent bine-cunoscutul joc "Nu te supara frate!". Se va retine si topul punctajelor obtinute de fiecare jucator in parte si, eventual, starea jocului in cazul in care oponentii doresc sa-l intrerupa temporar.

NonitorA (B)

Sa se scrie o aplicatie care sa monitorizeze activitatea serverelor de tip NonitorS care ruleaza pe calculatoarele unei retele locale. Se vor pune la dispozitie si servicii de administrare (e.g., oprirea sau suspendarea unor servere).

Nuilding-C (B)

Sa se scrie o aplicatie client care va fie utilizata in conjunctie cu Nuilding-S, oferind o interfata de exploatare a informatiilor privitoare la cladirile Universitatii.

Nuilding-S (B)

Sa se scrie o aplicatie server care sa ofere operatii de management a diferitelor informatii (proprietar, tip, capacitate, imagine interioara etc.) despre salile care compun cladirile Universitatii. Se vor pune la dispozitie si diverse posibilitati de cautare (de exemplu, toate salile din corpul C care sunt destinate ca birouri ocupate de maxim 4 persoane). Server va oferi si servicii de administrare a informatiilor referitoare la cladiri.

PlayNTSF (B)

Sa se implementeze un client cu interfata-utilizator atractiva pentru serverul NTSF.

ReversiC (B)

Sa se conceapa un client, cu o interfata atractiva, corespunzator serverului ReversiS.

ReversiS (B)

Sa se scrie un server care sa ofere unor perechi de clienti posibilitatea sa joace Reversi. Jucatorii vor fi identificati prin nume unice, putindu-se realiza si un clasament al primilor N cei mai buni jucatori.

RiskC (B)

Sa se implementeze o aplicatie client cu o interfata prietenoasa pentru RiskS.

RiskS (B)

Sa se implementeze o aplicatie server pentru jocul Risk. Daca un client pierde legatura cu serverul, va fi substituit de catre server. Numarul maxim de partide, numarul maxim de jucatori pentru o partida, precum si alti parametri vor fi specificati intr-un fisier de configurare.

VisitC (B)

Sa se creeze o aplicatie client pentru VisitS.

VisitS (B)

Sa se implementeze o aplicatie server care furnizeaza carti de vizita in format vCard. Se vor oferi servicii de cautare si de adaugare/actualizare/stergere ca cartilor de vizita. Serverul va oferi servicii doar clientilor din reteaua locala.

Resurse suplimentare: http://www.imc.org/pdi/
roadC (B)

Sa se scrie o aplicatie client cu o interfata atractiva pentru roadC.

roadS (B)

Sa se scrie o aplicatie server care permite consultarea starii retelei de drumuri dintr-o zona. De la client se va primi o ruta si se va transmite acestuia care este starea pe fiecare portiune a rutei, eventual si gradul de aglomerare.

simroute (B)

Sa se scrie un simulator al activitatii de routare (dirijare) interna a pachetelor intr-un sistem autonom compus din mai multe sisteme terminale, sisteme intermediare si un numar de N routere (drept caz particular, se poate lua N cu valoarea 3) pe baza unor rute statice preluate dintr-un fisier de configurare. Simulatorul va transmite clientilor sai, la cerere, starea curenta a simularii realizate.

topmovieC (B)

Sa se scrie clientul, avind o interfata atractiva, pentru serverul topmovieS.

topmovieS (B)

Sa se implementeze un serviciu pentru prezentarea comparativa a topurilor de filme (de diverse genuri). Utilizatorii vor putea vota productiile cinematografice preferate, reactualizarea efectuindu-se in mod dinamic. Cind filmul votat ajunge pe primul loc sau cind paraseste topul, utilizatorul respectiv va fi automat instiintat, prin e-mail. Se va prevede si posibilitatea de a propune noi intrari in top.

007 (C)

Sa se implementeze un server TCP concurent care simuleaza situatia descrisa in continuare. Serverul ofera posibilitatea ca agentul 007 - reprezentat de un client permanent conectat - sa discute cu partenerii sai - maxim alti 3 clienti conectati. La server se pot conecta uneori maximum alti 2 clienti (pe post de raufacatori) care vor incerca sa-l ucida pe agentul 007. Orice incercare de a trimite vreun mesaj spre agentul 007 din partea raufacatorilor va fi stavilita de server prin redirectaera acelui mesaj catre partenerii lui 007. Daca acel mesaj era "mori", atunci clientul partener va fi automat deconectat, in caz contrar va fi ignorat. In cazul in care agentul 007 nu are nici un partener conectat, orice expediere de mesaje din partea raufacatorilor se va solda cu trimiterea unui mesaj "alta data" de la agentul 007 la toti raufacatorii, urmata de deconectarea de la server a acestora.

Cei trei iezi (C)

Sa se implementeze un server TCP concurent care poate avea cel mult 4 clienti simultan (unul cu rolul de lup, iar ceilalti de iezi). Imediat dupa conectare, fiecare client va preciza serverului - care joaca rol de capra - postura pe care doreste s-o aiba. Daca rolul (de ied ori de lup) este liber, atunci clientul va fi acceptat de catre server. Din S in S secunde, lupul va incerca sa manance un ied, precizand serverului care anume. Iedul victima va fi deconectat de la server, dar va putea reinvia dupa 1 minut (incercand sa se reconecteze). Daca lupul a precizat un ied inexistent, va astepta inactiv timp de S*2 secunde.

Clients (C)

Fie un server TCP concurent la care se pot conecta simultan maxim N clienti. Serverul primeste mesaje, din S in S minute, de la macar M dintre clienti, cu M < N. Daca mesajele primite de la cei M clienti nu coincid, atunci serverul va trimite celor N clienti mesajul "gata", dupa care deconecteaza toti clientii. Daca mesajele coincid, serverul va trimite tuturor clientilor mesajul "continua" si va astepta urmatoarele mesaje de la alti doi clienti ai sai.

Counter (C)

Sa se implementeze o aplicatie client/server pentru determinarea numarului de aparitii pentru fiecare caracter dintr-un text vehiculat prin retea (de la client la server).

Delphi (C)

Sa se implementeze urmatorul scenariu. Un server TCP concurent pe post de oracol asteapta mesaje de la maxim 5 clienti. Mesajele pot fi de doua tipuri: "?" semnifica faptul ca serverul va trimite clientului un citat ales aleatoriu dintr-un fisier, iar "X" specifica faptul ca acel client va fi deconectat dupa 10 secunde de la server.

Dr. Bonessa (C)

Dr. Bonessa era intr-o expeditie in jungla amazoniana. Angajase C calauze autohtone, dar nu prea avea incredere in ele. De la fiecare calauza trebuia sa primeasca, din T in T minute, cite doua mesaje. Daca primul mesaj era "pericol" si al doilea era "pericol mare", insemna ca triburile potrivnice expeditiei se pregateau de atac. In aceasta situatie, Dr. Bonessa trebuia sa trimita fiecarei calauze ordinul de a se ascunde in cocotieri. Daca mesajul era "liniste" (nu conta ce insemna al doilea mesaj), atunci totul era (aparent) in ordine. Pentru a se asigura de exactitatea mesajelor calauzelor sale, Dr. Bonessa trimitea mesajul de ascundere numai daca macar C-2 dintre calauze ii indicau "pericol", altfel le ignora mesajele. Sa se scrie serverul si clientul care simuleaza aceasta situatie.

Harry Potter (C)

Sa se realizeze o aplicatie server care permite conectarea simultana a maxim 5 clienti. La un moment dat un singur client poate fi Potter, in mod obligatoriu clasa IP-ului clientului trebuie sa fie de clasa C. La fiecare 48 secunde fiecare client poate alege un alt client caruia ii vor fi ignorate mesajele timp de 32 de secunde. Potter poate trimite mesaje clientilor sai doar la intervale de 32 de secunde. Aleatoriu, serverul poate deconecta clientii, exceptindu-l pe Potter. Un client deconectat nu va putea sa se reconecteze decit dupa 56 de secunde.

Jom & Terry (C)

Sa se implementeze un server TCP concurent care rezolva conflictul dintre maxim 4 perechi de clienti - identificati prin numele Jom si, respectiv, Terry - in felul urmator. Daca se conecteaza primul un client Terry, atunci va primi o bila magica, in caz contrar o va primi un client Jom. Clientul care poseda bila magica va trimite din 3 in 3 secunde (prin intermediul serverului) tuturor celorlalti clienti cate un mesaj de avertisment. Mesajul va fi ignorat de clientii care poseda la randul lor bila magica. Daca un client primeste de trei ori cate un mesaj de avertisment, va fi deconectat.

Neteo (C)

Sa se scrie o aplicatie client/server pentru managementul (e.g., listare, modificare, stergere) informatiilor meteo pentru o anumita zona. La un port separat se va oferi posibilitatea actualizarii informatiilor meteo privitoare la o localitate sau multime de localitati ale zonei considerate.

Neverser (C)

Sa se scrie un server care primeste de la diversi clienti numele unui fisier si returneaza in ordine inversa (de la ultima, penultima pina la prima) liniile din fisier, fiecare linie transmisa fiind inversata (ultimul caracter devine primul, penultimul devine al doilea si asa mai departe).

Numbers (C)

Sa se scrie un server care genereaza periodic, in mod aleator, un numar cuprins intre 1 si 100. Fiecare client va trimite maxim 3 numere pina la generarea numarului de catre server. Daca se trimit mai mult de 3 numere, doar primele trei vor fi luate in consideratie. Dupa generarea numarului, serverul va determina care dintre clienti a fost cel aproape de a ghici numarul si va trimite clientilor un mesajul "ai ghicit". Numarul maxim de clienti permisi va fi 5.

Series (C)

Sa se creeze o aplicatie client/server unde serverul primeste un numar variabil de numere de la fiecare client. Pentru fiecare set de numere, serverul va detecta daca acestea formeaza o progresie aritmetica sau geometrica. In caz afirmativ, va trimite clientului ratia. Altfel, va expedia mesajul "nu".

mfiles (C)

Sa se scrie o aplicatie client/server care sa dea posibilitatea de a lista informatii (nume, lungime, permisiuni, proprietar etc.) privitoare la fisierele aflate la distanta. Se presupune ca aceste fisiere sint stocate identic pe diferite masini, astfel incit in cazul in care o masina este indisponibila, sa fie cautate la alte adrese IP (aceste adrese vor fi memorate intr-un fisier al serverului). Daca un client solicita informatii despre fisierele unei masini a carei adresa nu exista in fisier, adresa masinii va fi inserata in acesta.

natameter (C)

Sa se implementeze o aplicatie client/server care, folosind comanda 'ifconfig', realizeaza - din M in M minute - statistici privitoare la transferul de date pentru fiecare interfata (placa) de retea operationala.

netinger (C)

Sa se scrie o aplicatie client/server care ofera posibilitatea consultarii de la distanta a informatiilor privitoare la accesarea unui cont de utilizator pe o anumita masina (de exemplu: ultimele N conectari, daca este sau nu conectat in momentul solicitarii acestor informatii, locatia de unde este conectat etc.).

netls (C)

Sa se scrie o aplicatie client/server pentru listarea de la distanta a continutului unui director, precizindu-se tipul, lungimea, proprietarul si alte informatii relevante despre intrarile acelui director. Se va furniza si numarul total de octeti ocupati de toate fisierele din acel director. Se va implementa si o metoda recursiva de listare a continutului subdirectoarelor directorului in cauza.

rcron (C)

Sa se scrie un server furnizind servicii de planificare a unor activitati periodice, descrise de diversi utilizatori (e.g., stergerea fisierelor temporare in fiecare zi, la miezul noptii; trimiterea unui e-mail din N in N ore etc.). Se va implementa si un client simplu care sa acceseze functionalitatile serverului.

rgrep (C)

Sa se realizeze o aplicatie client/server care primeste de la diversi clienti numele unui fisier si un sir de caractere si returneaza liniile din fisier care vor contine acel sir (simuleaza executia de la distanta a comenzii 'grep').

rps (C)

Sa se scrie o aplicatie client/server pentru vizualizarea de la distanta a informatiilor despre procesele unui utilizator si/sau ale sistemului (in maniera oferita de comenzile 'ps' si 'top').

De parcurs prevederile privind realizarea/notarea proiectelor.

Ultima actualizare: 18 noiembrie 2008
Un total de 58 de proiecte propuse (12 de clasa A, 27 de clasa B si 19 de clasa C).

Propunatori: Sabin Corneliu Buraga, Stefan Tanasa, Lenuta Alboaie.
Cuprins