Sunteți pe pagina 1din 5

ACADEMIA DE STUDII ECONOMICE CIBERNETICA, STATISTICA SI INFORMATICA ECONOMICA

Proiect retele de calculatoare Aplicatie intranet pentru resurse umane

Student:

grupa 1050

BUCURESTI 2011

Aplicatie intranet pentru resurse umane

Descrierea aplicatiei
Aplicatia intranet de fata este destinata utilizarii in domeniul resurselor umane, gestionand informatii despre angajati, departamente si functii. Date sunt stocate intr-o baza de date de pe server avand urmatoarea structura:

DEPARTAMENTE cod_departament denumire telefon

ANGAJATI cod_angajat cnp nume prenume data_angajarii salariu spor cod_departament cof_functie

FUNCTII cod_functie denumire

Aplicatia este bazata pe modelul client-server, partitionand date intre furnizor (serverul) si solicitantul datelor (clientul). Clientul nu imparte resurse dar cere serverului date sau servicii (REQUEST). De aceea, clientul initiaza comunicatia cu serverul care asculta reteaua pentru a primi cereri de conexiune (LISTENER). Serverul asigura serviciul solicitat de catre client (REPLY). Transferul datelor se va face cu ajutorul namespace-ului System.IO. Acesta contine clasele StreamReader si StreamWriter care controleaza cititul si scrisul de mesaje text pe un stream. Avantajul este ca ambele clase pot fi folosite cu un obiect NetworkStream pentru a ajuta trimiterea de mesaje TCP.

Aplicatie intranet pentru resurse umane Crearea serverului


Primul pas in construirea serverului TCP a fost crearea unui obiect de tip Socket. Urmatoarele trei functii necesare pentru operationalitatea serverului (legarea socketului la un IPEndPoint, plasarea socketului in modul ascultare si acceptarea unei conexiuni) sunt indeplinite prin utilizarea metodelor obiectului de tip Socket. Obiectul de tip Socket creat de metoda Accept() este folosit mai departe pentru a trimite date in ambele sensuri intre server si client.

Crearea clientului
Clientul este creat in Windows Forms Application avand o interfata user-friendly, usor de utilizat de catre angajatii respunzatori de resursele umane.

Protocolul la nivel aplicatie


Foloseste serviciile de tip canal logic de comunicatie asigurate de protocolul TCP de la nivel transport. Mesaje schimbate si actiuni specifice schimbului de mesaje:

Conectarea clientului la server


Clientul are accesul blocat la aplicatie pana cand se conecteaza la server utilizand optiunea din meniu File->Connect to server. Acesta metoda consta in conectarea la server si trimiterea unui mesaj Parola. Daca mesajul a ajuns cu succes la destinatie, serverul trimite inapoi un mesaj ok, ce permite aplicatiei client sa treaca mai departe. Urmato rul pas in cazul reusitei, ar fi deschiderea unei fererestre de login unde clientul trebuie sa se logheze utilizand un user name si o parola corespunzatoare. Aceste informatii sunt trimise catre server unde le este testata corectitudinea . In cazul afirmativ, serverul trimite mesajul ok, iar in caz contrar trimite mesajul deny. Daca clientul primeste inapoi mesajul ok atunci userul este conectat la server si se afiseaza un mesaj de conectare reusita, altfel conectarea nu a reusit, aplicatia este inca blocata utilizarii si se afiseaza un mesaj de user name si parola incorecte.

Inserare angajat
Aceasta metoda incepe prin a trimite serverului mesajul InserareAngajat. Daca mesajul ajunge la destinatie, serverul trimite inapoi mesajul ok si apeleaza metoda inserareAngajat. Clientul trimite datele despre angajat completate de utilizator, serverul le primeste si le insereaza in baze de date. Daca operatia de inserare a reusit se trimite clientului un mesaj ok, daca au aparut probleme se trimite mesajul deny. Daca clientul primeste mesajul ok se afiseaza un mesaj de inserare reusita, altfel se afiseaza un mesaj de eroare.

Inserare functie

Aplicatie intranet pentru resurse umane


La fel ca la inserarea angajatului, aceasta metoda incepe prin a trimite serverului un mesaj, si anume InserareFunctie. Daca mesajul ajunge la destinatie, serverul trimite inapoi mesajul ok si apeleaza metoda inserareFunctie. Clientul trimite datele despre functie completate de utilizator, serverul le primeste si le insereaza in baze de date. Daca operatia de inserare a reusit se trimite clientului un mesaj ok, daca au aparut probleme se trimite mesajul deny. Daca clientul primeste mesajul ok se afiseaza un mesaj de inserare reusita, altfel se afiseaza un mesaj de eroare.

Inserare departament
Acelasi algoritm ca in cazul inserarii unui angajat sau inserarii unei functii: se trimite serverului mesajul InserareDepartament. Daca mesajul ajunge la destinatie, serverul trimite inapoi mesajul ok si apeleaza metoda inserareDepartament. Clientul trimite datele despre departament completate de utilizator, serverul le primeste si le insereaza in baze de date. Daca operatia de inserare a reusit se trimite clientului un mesaj ok, daca au aparut probleme se trimite mesajul deny. Daca clientul primeste mesajul ok se afiseaza un mesaj de inserare reusita, altfel se afiseaza un mesaj de eroare.

Selectarea angajatilor dupa interval de salarii


Aceasta metoda incepe prin a trimite serverului mesajul SelectareSalariu. Daca mesajul ajunge la destinatie, serverul trimite inapoi mesajul ok si apeleaza metoda selectareSalariu. Clientul trimite salariu minim si salariul maxim pentru cautare (dupa validarea datelor), serverul le citeste si efectueaza o interogare asupra bazei de date selectand angajatii cu salarii cuprinse intre aceste valori. Acesti angajati sunt memorati intr-o lista de angajati. Serverul trimite clientului numarul de angajati rezultati in urma interogarii. Clientul primeste acest numar si repeta primirea pe componente a angajatului de la server de acest numar de ori. Se creaza si aici o lista de angajati care mai apoi se afiseaza intr-un listView.

Selectarea angajatilor dupa cnp


Clientul trimite serverului mesajul SelectareCNP. Daca serverul il primeste trimite un raspuns ok si apeleaza metoda selectareCNP. Utilizatorul introduce cnp-ul angajatului pe care il cauta. Acesta este trimis serverului care efectueaza o interogare asupra bazei de date. Se returzeaza angajatul cu cnp-ul cautat (daca exista) si se trimite clientului numarul de angajati care indeplinesc conditia. Daca numarul este 0 se afiseaza un mesaj de eroare (nu exista niciun angajat cu cnp-ul dat). Serverul trimite datele despre angajat, clientul le primeste si le afiseaza intr-un listView.

Selectarea angajatilor dupa departament


Incepe prin a trimite serverului mesajul SelectareDepartament. Daca mesajul ajunge la destinatie, serverul trimite inapoi mesajul ok si apeleaza metoda selectareDepartament. Clientul trimite codul departamentului pentru cautare (dupa validarea datelor), serverul il citeste si
3

Aplicatie intranet pentru resurse umane


efectueaza o interogare asupra bazei de date selectand angajatii ce apartin acestui departament. Acesti angajati sunt memorati intr-o lista de angajati. Serverul trimite clientului numarul de angajati rezultati in urma interogarii. Clientul primeste acest numar si repeta primirea pe componente a angajatului de la server de acest numar de ori. Se creaza si aici o lista de angajati care mai apoi se afiseaza intr-un listView.

Stergere angajati
Se declanseaza atunci cand utilizatorul selecteaza din lista niste angajati: -si apasa tasta Delete -sau da click dreapta->Delete. Se trimite serverului mesajul StergereAngajati. Daca acesta il primeste returneaza un mesaj ok si apeleaza metoda stergereAngajati. Se numara cati angajati au fost selectati si acest numar este trimis serverului. Serverul se pregateste sa primeasca acest numar de coduri de angajati iar clientul trimite codurile angajatilor selectati. Serverul sterge angajatii cu aceste coduri din baza de date. Daca operatia este realizata cu succes serverul trimite mesajul ok, iar in caz contrar mesajul deny. La client se afiseaza un mesaj corespunzator: operatie reusita pentru ok si operatie nereusita pentru deny.

Deconectarea de la server
Se petrece atunci cand utilizatorul selecteaza File->Disconnect sau File->Exit. Se trimite serverului un mesaj exit. Serverul inchide socketul deschis pentru client si apeleaza metoda Principal() pentru a-si relua activitatea.

S-ar putea să vă placă și