Obiectivul temelor de casă este reprezentat de implementarea unui sistem informatic performant şi scalabil pentru gestiunea resurselor unei întreprinderi de dimensiuni mari. În acest an universitar, organizaţia pentru care se va proiecta şi dezvolta acest pachet de programe este un lanț de policlinici.
Se va realiza implementarea graduală a mai multor module din cadrul aplicației ERP, pe parcursul a patru etape.
În cadrul acestei etape se va dezvolta o aplicaţie distribuită care va rula pe mai multe maşini, în condiţiile în care volumul de date pe care trebuie să îl gestioneze organizaţia implică timpi de execuţie inacceptabili pentru un utilizator care o interoghează.
După rezolvarea temei de casă, studentul va fi capabil să:
Cunoştinţele necesare pentru rezolvarea temei de casă sunt:
Întrucât numărul de înregistrări stocat în baza de date relaţională determină ca timpul de răspuns pentru operaţiile de raportare (ce implică volume mari de date) să nu respecte constrângerea cu privire la operarea în timp real a unei aplicaţii integrate pentru întreprinderi, la nivelul executiv al lanțului de policlinici s-a luat decizia migrării spre o soluţie distribuită, pentru care a decis achiziţionarea unui cluster format din maşini larg disponibile în comerț (având un cost redus, fără performanțe deosebite).
Se doreşte monitorizarea activității medicilor care oferă servicii medicale în cadrul lanțului de policlinici în vederea evaluării oportunității continuării colaborării cu aceștia. Criteriile avute în vedere sunt numărul de servicii medicale oferite, numărul de pacienți care apelează la cadrul medical respectiv precum și veniturile încasate pe baza consultațiilor / investigațiilor oferite. Acestea vor fi analizate pe baza rapoartelor medicale completate pentru fiecare programare realizată de un pacient în cadrul unității sanitare.
De asemenea, va fi investigat, pentru fiecare specialitate, numărul de medici care activează în cadrul acesteia și sumele de bani pe care le-au generat.
În acest sens, vor fi generate două rapoarte sub forma unor fişiere text:
Un raport detaliat conţine numele şi prenumele medicului, numărul de pacienți unici pentru care acesta a completat rapoarte medicale, numărul de servicii medicale distincte oferite în cadrul policlinicii precum și venitul pe care acesta l-a generat, pentru toate consultațiile / investigațiile medicale:
NUME MEDICk Prenume Medick = număr_pacienti, numar_servicii_medicale, venit
Un raport sintetic conţine denumirea fiecărei specialități pentru care au fost oferite servicii medicale în cadrul lanțului de policlinici, numărul de medici care le-au oferit precum și venitul generat.
Specialitatek = număr_medici, venit
Se recomandă ca pentru implementarea temei de casă să folosiţi una dintre maşinile virtuale pusă la dispoziţie în cadrul laboratorului sau să folosiţi aceleaşi versiuni / proprietăţi de configurare ca în cadrul acesteia, întrucât corectarea se va realiza pe o astfel de platformă. Cu alte cuvinte, veţi utiliza Hadoop 2.5.1 / 2.6.0 şi HBase 0.98.6.1 / 0.98.8.
Este suficient ca în portarea bazei de date să preluaţi DOAR acele tabele necesare pentru rezolvarea cerinţelor și DOAR câmpurile care se vor regăsi în cadrul rapoartelor generate. Întrucât procesul de populare implică mai multe comenzi HBase pentru o singură înregistrare, se recomandă şi implementarea unui program pentru generarea scriptului care realizează această operaţie. Nu este necesară includerea acestei aplicații în arhiva temei de casă, este suficient să includeți scriptul pentru popularea bazei de date. Informațiile din baza de date trebuie să fie coerente (serviciile medicale solicitate de un pacient în cadrul unei programări trebuie să corespundă uneia dintre specialitățile pe care le deține medicul; în cadrul acestei teme de casă nu vor fi luate în considerare competențele dobândite de medic, acesta putând oferi toate serviciile medicale corespunzătoare specialității sale).
Nu este necesară includerea unui script pentru crearea unei arhive jar conţinând aplicaţia dezvoltată, întrucât operaţia este realizată de plugin-ul Hadoop pentru Eclipse, acesta fiind responsabil şi de transmiterea sarcinii, permiţând totodată consultarea informaţiilor din sistemul de fişiere distribuit HDFS.
Nu este permisă utilizarea unui obiect de tip org.apache.hadoop.hbase.client.Scan
decât ca parametru pentru clasele care realizează sarcini de tip MapReduce, întrucât operaţiile realizate de acesta, în contextul unei singure maşini, implică resurse de procesare şi memorie care depreciază timpul de execuţie al unei aplicaţii.
În raport vor fi omise informaţiile nule, în cazul în care activitatea unui medic / pentru o specialitate nu poate fi contorizată conform înregistrărilor reţinute în baza de date.
PUNCTAJ | CRITERII DE ACORDARE |
---|---|
1,25 p | reproiectarea bazei de date conform modelului distribuit ♦ definirea tabelelor şi a structurii statice: 30% ♦ populare adecvată: 70% |
3,50 p | generarea rapoartelor ♦ raport detaliat: 50% ♦ raport sintetic: 50% |
0,25 p | modularizare ♦ structura aplicaţiei şi lizibilitatea codului: 50% ♦ comentarii, README: 50% |
BONUS. Se pot obţine punctaje suplimentare, astfel:
Tema va fi realizată individual şi va fi prezentată în cadrul laboratorului, până la sfârşitul semestrului. Neprezentarea temei de casă atrage după sine nepunctarea acesteia. În cadrul prezentării veţi specifica succint funcţionalităţile pe care le-aţi dezvoltat şi veţi răspunde la întrebări cu privire la diferite soluţii adoptate pentru rezolvarea problemelor întâlnite.
Tema va trebui încărcată pe site-ul http://cs.curs.pub.ro sub forma unei arhive de tip .zip (având denumirea Grupa34XCX_NumePrenume_Tema4.zip) care să conţină script-ul pentru crearea şi popularea tabelelor din baza de date, sursele aplicaţiei şi un README în care să prezentaţi definiţia bazei de date (tabele, familii de coloane şi structura lor), explicând cum aţi proiectat sarcinile de tip map şi reduce. Prezentarea se poate realiza numai după ce tema a fost încărcată pe site.
Încărcarea pe site nu este redundantă, temele vor fi comparate prin aplicaţii specializate pentru a se depista eventualele fraude. În această situaţie, întreg punctajul pe parcursul semestrului va fi anulat, studenţii implicaţi (atât originalul, cât şi copia / copiile) fiind obligaţi să repete disciplina – cu taxă – în anul universitar următor.