Documente Academic
Documente Profesional
Documente Cultură
Arhitectura sistemului
Cuprins
Index de tabele
1. Componente necesare
Nr. Nume componentă Descriere Funcţionalităţi
[1] Management de Permite administrarea a.) Oferă facilităţi de creare,
formulare întrebărilor din chestionare modificare, ştergere legate de
şi a chestionarelor. întrebări şi chestionare.
Constituie interfaţa de b.) Permite accesul la formular.
acces la repository-ul de
întrebări.
[2] Statistică Centralizează şi a.) Oferă funcţionalităţi de analiză a
prelucrează datele din formularului completat.
chestionar. b.) Permite accesul la datele
colectate şi prelucrate pe criterii
specificate.
[3] Generare de Permite obţinerea de a.) Generează rapoarte în format
Rapoarte rapoarte bazate pe datele human-readable respectiv print-
obţinute din componenta de ready.
statistică.
[4] Generare de Permite obţinerea de a.) Generează grafice într-un format
Grafice grafice bazate pe datele user friendly afişabil într-un raport
obţinute din componenta de sau direct într-o pagină
statistică.
[5] Securitate Permite blocarea accesului a.) Permite blocarea accesului pe
pe parţi de aplicaţie. parţi de aplicaţie pentru un user
care nu are rolul adecvat.
[6] Managementul Oferă o interfaţă pentru a.) Oferă facilităţi de autentificare
rolurilor şi userilor autentificarea utilizatorului în sistem.
[7] Content Oferă pentru interfaţă a.) Oferă facilităţi de acces la
management accesul la content. content.
system. b.) Oferă facilităţi de administrare a
conţinutului.
[8] Persistentă şi Este interfaţa pentru layerul a.) Oferă facilităţi de acces la date.
accesul la date de date.
[9] Interfaţă Site WEB prin care se a.) Permite accesare sistemului prin
realizează interacţiunea cu intermediul unui browser WEB.
utilizatorul. b.) Comunică cu celelalte module
pentru a îndeplini funcţionalităţiile
sistemului.
Tabel I-1 Componente necesare
2. Analiză tehnologii
În această secţiune vor fi prezentate tehnologii prin intermediu cărora se pot
implementa componentele. Acele componente care nu au tehnologii analizate sunt
componente custom şi ţin de organizarea internă a aplicaţiei.
A. Statistică
JRI este un API JAVA pentru a acces si prelucrare de date care se bazează pe engine-
ul R. JRI este o interfaţă care permite rularea R-ului nativ din JAVA ca o aplicaţie single
Thread.
B. Generare de rapoarte
Jasper Reports este un tool open-source JAVA care oferă posibilitatea de a genera
rapoarte dinamice, rich-content pentru ecran sau pentru imprimantă în format PDF, HTML,
XLS, CSV şi XML. Este scris în întregime în JAVA şi poate fi folosit cu succes în aplicaţii
J2EE sau WEB. Scopul său este de a ajuta în creare de documente orientate pagină într-o
manieră simplă şi flexibilă.
iReport este un tool vizual scris 100% în JAVA şi bazat pe jasper reports. Datele pot
fi preluate folosind JDBC, TableModels, JavaBeans, XML şi suportă output în PDF, HTML,
XLS, CSV, XML şi Java2D. Toolul oferă posibilitatea de a fi integrat în platforma NetBeans.
Produsul este consacrat şi folosit într-o varietate de aplicaţii enterprise.
C. Generare de grafice
Google Chart API este un servlet ce returnează o imagine în format PNG ca răspuns
la un URL. Sunt suportate diverse tipuri de grafice într-o manieră flexibilă. Toată
documentaţia proiectului şi modalitatea în care sunt pasaţi parametrii sunt prezentaţi pe
pagina proiectului.
JFreeChart este o librărie de chart-uri 100% Java open-source. API-ul este util atât
pentru aplicaţii server-side cât şi pentru aplicaţii client-side. Sunt suportate ca format de
output imagini în formatele: PNG, JPEG, SVG.
D. Server de aplicaţie
JBoss Application Platform este o platformă web de aplicaţie care are la bază un
JBoss Application server peste care sunt deployate o serie de produse JBoss. Platforma este
heavyweight şi oferă o varietate de soluţii în materie de securitate, role şi content
management. Serverul de aplicaţie are la bază un Tomcat care are funcţie de servlet-container
pentru deservirea cererilor WEB.
F. SGBD
MySQL Community Server 5 este poate cel mai consacrat sistem open-source de
gestiune a bazelor de date. Nu impune nici un fel de restricţii fizice asupra bazei sau asupra
utilizării acesteia şi vine cu driver nativ de JDBC. Documentaţia este vastă iar forumul intern
este foarte bine întreţinut.
G. Medii de dezvoltare
NetBeans Visual WEB Application este un tip de proiect din mediu de dezvoltare
NetBeans bazat pe frameworkul JSF (Java Server Faces) care pune la dispoziţie un editor
vizual pentru interfeţe împreună cu un generator complex de cod in back-end. Interfeţele sunt
generate Ajax-enabled deci oferă o soluţie simpla si eficienta de a dezvolta GUIuri complexe.
Aceasta soluţie pentru interfaţă, oferă si posibilitatea de a folosi puterea de dezvoltare a
platformei NetBeans.
Spring este cel mai consacrat şi complet framework bazat pe tehnologii Java
Enterprise. Frameworkul oferă un container uşor de utilizat, un strat de abstractizare pentru
managementul de tranzacţii, un strat de abstractizare pentru conexiuni JDBC şi un framework
flexibil MVC pentru aplicaţii WEB.
I. Engine de orchestrare
JBoss JBPM-BPEL face parte din suita de aplicaţie JBoss şi reprezintă o varianta
open-source în materie de engine de orchestrare. De la versiunea 2.0 suportă BPEL 2.0 şi
poate fi utilizate alături de un plug-in Eclipse pentru dezvoltare de procese. Deploymentul
este bazat pe scripturi ANT.
II. Arhitectura sistemului
În acest capitol va fi detaliat modelul conceptual al sistemului, se vor prezenta două
propuneri de realizare după care se va detalia o variantă finală.
Fiecare propunere este însoţită de o diagramă de implementare urmând ca pentru
propunerea finală să fie detaliate şi tehnologiile prin care se poate atinge funcţionalitatea
sistemului.
1. Propunerea 1
Prima propunere este bazată pe o arhitectură three-tier J2EE.
Aplicaţia este împărţită logic în trei layere. Layerul de prezentare care constituie
interfaţa cu utilizatorul poate fi uşor separat de restul componentelor după cum urmează.
Componentă Tehnologie
Securitate JAAS
Managementul rolurilor şi userilor Apache Tomcat Role mangement
Content management system. Custom
Interfaţă NetBeans Visual WEB Application (JSF)
Tabel II-1 Layerul de Prezentare – Propunerea 1
Aplicaţia este împărţită logic în patru layere. Layerul de prezentare care constituie
interfaţa cu utilizatorul poate fi uşor separat de restul componentelor după cum urmează.
Componentă Tehnologie
Securitate LDAP
Managementul rolurilor şi userilor JBoss user management
Content management system. Custom
Interfaţă Spring
Tabel II-4 Layerul de Prezentare – Propunerea 2
A. Perspectiva structurală
În această secţiune dorim să descriem arhitectura sistemului din punct de vedere
structural detaliind în diagramele ce urmează poziţia subsistemelor în aplicaţie şi
interacţiunile existente. De asemenea vrem sa descriem şi un lanţ de dependenţe care până în
momentul de faţă este uşor de intuit.
[1] JRI
¾ http://stats.math.uni-augsburg.de/JRI/
[4] Pentaho
¾ http://www.pentaho.com/products/reporting/
[5] iReport
¾ http://jasperforge.org/jaspersoft/opensource/business_intelligence/ireport/
¾ http://jasperforge.org/jaspersoft/opensource/business_intelligence/ireport/page.php?id=5
¾ http://jasperforge.org/sf/wiki/do/viewPage/projects.ireport/wiki/IReportManualV1.2.1
¾ http://jasperforge.org/jaspersoft/opensource/business_intelligence/ireport/page.php?name
=ireport-nb-getting-started
¾ http://jasperforge.org/jaspersoft/opensource/business_intelligence/ireport/page.php?name
=iReportNB
[7] JFreeChart
¾ http://www.jfree.org/jfreechart/
¾ http://www.jfree.org/jfreechart/samples.html
¾ http://www.jfree.org/jfreechart/devguide.html
[10] GlassFish
¾ https://glassfish.dev.java.net/
¾ https://glassfish.dev.java.net/public/users.html
[11] Hibernate
¾ http://www.hibernate.org/
¾ http://www.hibernate.org/5.html
¾ http://www.hibernate.org/6.html
[12] JDBC
¾ http://java.sun.com/products/jdbc/overview.html
¾ http://java.sun.com/j2se/1.4.2/docs/guide/jdbc/index.html
¾ http://java.sun.com/products/jdbc/learning/tutorial/index.html
[13] Oracle
¾ http://www.oracle.com/technology/products/database/xe/index.html
[14] MySQL
¾ http://www.mysql.com/
¾ http://dev.mysql.com/usingmysql/java/
¾ http://dev.mysql.com/downloads/mysql/5.0.html
[15] NetBeans
¾ http://www.netbeans.org/
¾ http://www.netbeans.org/community/releases/61/
¾ http://wiki.netbeans.org/
¾ http://www.netbeans.org/kb/index.html
[16] Eclipse
¾ http://www.eclipse.org/
¾ http://www.eclipse.org/documentation/
¾ http://www.eclipse.org/resources/?category=Getting%20Started
¾ http://www.eclipse.org/downloads/
[18] Spring
¾ http://www.springframework.org/
¾ http://www.springframework.org/documentation
¾ http://opensource.atlassian.com/confluence/spring/dashboard.action
[19] Struts
¾ http://struts.apache.org/