luni, 27 decembrie 2010

MVC



Model-View-Controller este un model de design(design pattern) adesea folosit in programarea orientata pe obiecte.
Acest model poate fi utilizat si in cazul unei aplicatii web astfel :
  • Model-ul : reprezentat de clase java (eventual java beans)
  • View-ul : pagini JSP
  • Controller-ul : Servlets
Controller-ul este cel care face legatura intre model si view.
Modelul nu are cunostina de view sau de controller.
View-ul este ceea ce vede utilizatorul(o prezentare vizuala a modelului).

joi, 23 decembrie 2010

joi, 9 decembrie 2010

miercuri, 8 decembrie 2010

Asa va arata prima pagina s site-ului :)

sâmbătă, 4 decembrie 2010

Avantaje JSP si cateva alte detalii

JSP este centrat pe documente. Servletele in schimb arata si se comporta asemenea programelor. JSP poate contine fragmente de program care instantiaza si executa clase Java dar asta se intampla in interiorul unui template HTML si este folosit in principal pentru a genera continut dinamic. O parte din functionalitatea JSP poate fi obtinuta la client folosind JavaScript. Puterea JSP consta in aceea ca este bazat pe server si ofera framework pentru dezvoltarea aplicatiilor Web. 


Diferite tipuri de tag:




Inca o imagine folositoare care descrie handlerul HTTP JSP folosinf Tomcat :

JSP

         M-am interesat despre JSP-uri si am dat peste o mica prezentare a lor in timp. Următorii au fost pionierii care au   dezvoltat terenul de lucru in domeniul platformei JAVA legata de aceasta specificație. James Gosling a lucrat pe un server Web in JAVA si in 1994-1995 a pus fundamentele pentru servleturi. Un proiect mai mare a aparut in 1996 cu Pavani Diwanji ca inginer pe langa multi alții. Din acest proiect a venit Sun Java Web Server ca produs. Lucrurile au inceput sa evolueze rapid in 1999. Grupul ce s-a ocupat de dezvoltarea servletilor l-a avut pe James Davidson ca inginer si a livrat Servlet 2.1 in ianuarie si Servlet 2.2 in decembrie. In acest timp grupul ce s-a ocupat de dezvoltarea JSP avandu-l ca arhitect pe Eduardo Pelegri-Llopart a livrat JSP 1.0 in iunie si JSP 1.1 in decembrie.
             Anul 2000 a avut o multime de activitate, cu implementari de containere, unelte, carti si de formare ce vizeaza JSP 1.1, Servlet 2.2 si Java 2 Platform, Enterprise Edition. Bibliotecile au fost o zona de dezvoltare intensa. Adaptarea tehnologiei JSP a continuat in anul 2001, cu multe discutii la " Web, Servicies and beyond".
           JSP 1.2 a fost finalizat in 2001. JSP 1.2 a furnizat un numar fin de acordaje de specificatii. Acesta a adaugat de asemenea, posibilitatea de validare a paginii JSP prin punctele de vedere XML ale unei pagini JSP. JSP 1.2 a introdus si un cadru normativ de sintaxa XML pentru paginile JSP.
          JSP 2.0 este o revizuire majora a limbajului JSP. Noile caracteristici cheie includ un simplu Expression Language, fisiere tag, simplificarile substantiale pentru a scrie tag in Java si notiunea de fragmentare JSP. 2.0 include de asemenea, o revizuire a sintaxei XML care abordeaza cele mai multe dintre problemele JSP 1.2.
Figure 2: Request/Response Flow when Calling a JSP


marți, 30 noiembrie 2010

Web Application Solutions: A Designer’s Guide

Am gasit un ghid foarte interesant legat de solutiile pentru aplicatiile web. Pana la urma scopul fundamental al unei aplicatii web este de a facilita rezolvarea unuia sau mai multor taskuri. Depinzand de complexitatea si timpul taskurilor implicate, diferite solutii tehnice sunt mai bine pentru a satsiface cerintele produsului. Flash, Java applets, DHTML, Active X, Smart Clients, Java Web Start, SVG - pe care o alegem si de ce? Ce tip de interactivitate si prezentare vizuala activeaza fiecare tehnologie? Ce limite au?

Web applications sunt Web-accessibile, Web-conectate(utilizeaza o conexiune HTML) si orientate pe taskuri.

Thin Client 
Aplicatii Web care utilizeaza browser ul Web pentru securitate, managementul de stari si executia scriptului (run-time). Cea mai mare parte a procesarii de date si a stocarii se petrece pe un server remote. Cererile si raspunsurile serverului se petrec prin protocolul http. Principalul beneficiu: sunt accesibili de care oricine cu un browser Web, nu avem footprint ( download rapid).
Solutiile Thin Client:
HTML, XHTML
HTML, JavaScript, si CSS (DHTML)
DHTML cu Remote Scripting via iFrame
DHTML cu XMLhttpRequest (AJAX)

Rich Internet Application (RIA)
Aplicatii Web ce permit interactini mai bogate (animatii fluide, continut multimedia, validare in timp real) si trimiterea de mesaje remote in mod avansat ( Java Objects, Web Services). Plug-in-ul Sun de la Java si Flash-ul de la Macromedia sunt doua dintre cele mai populare RIA. RIA poate functiona in browsere cu plug-in incorporate. Nivelul de comunicatie HTTP folosit de aplicatiile Thin Client nu suporta tehnic livrarea garantata de mesaje, nu garanteaza ordinea mesajelor de trimis si nu suporta comunicatii initiate de server. Multe nivele de comunicatii RIA ofera mesaje robuste si activeaza "push" al continutului server.
Solutii Rich Internet Application
Flash 6
Flash cu Flex sau Laszlo Presentation Server
Java Applets
Active X

Rich Client (smart client, desktop client)
Sunt aplicatii conectate-Web care nu ruleaza in browser-ul Web si pot fi livrate ca, cod compilat. Rich Clients activeaza interactiuni bogate si pot utiliza Servicii Web pentru a se conecta la sursele de data distribuite. Spre deosebire de Thin Client poate fi folosit offline si se pot integra usor cu software-ul si hardware-ul local. Poate integra un Thin Client cu un browser Web integrat  in care o aplicatie Thin Client poate rula.
Solutii Rich Client :
Windows Smart Clients
Java Web Start
Upcoming, Interesting, sau Relevant Solutions

















luni, 15 noiembrie 2010

Baza de date

Desi aveam un schelet al bazei de date oferit din specificatii iata-l acum implementat in Visio. Am folosit un model facut "de mana" pentru a realiza modelul mai compex cu tool-ul Visio. Vom aveam 8 tabele, intre 2 dintre ele vor fi legaturi N:M iar intre celelalte vom avea 4 legaturi 1:N dupa cum se va observa in desenele de mai jos .


Structuri Hypertext

Am dezvoltat 2 structuri hypertext : pentru student si profesor. Fata de celelalte diagrame a fost mai dificial realizarea lor, nefolosindu-le anterior dar cred ca vor fi utile in implementarea programului.
Au fost folositoare cateva exemple pe care le-am gasit:

Rezultatul este urmatorul:



Am facut deasemenea diagrama de clasa dar consider ca inca nu este in totalitatea corespunzatoare cu proiectul si trebuie refacuta.

Diagrame de activitate

In plus fata de USE CASE-uri am dezvoltat si 3 diagrame de activitate specifice proiectului nostru.
Au fost suficiente slide-urile cursului pentru a le realiza dar am gasit cateva modele interesante si pe cateva siteuri:
http://en.wikipedia.org/wiki/Activity_diagram
http://www.agilemodeling.com/artifacts/activityDiagram.htm
http://www.developer.com/article.php/2247041
http://sunset.usc.edu/classes/cs577a_2000/papers/ActivitydiagramsforRoseArchitect.pdf

Cam asta a iesit:



marți, 9 noiembrie 2010

duminică, 31 octombrie 2010

Diagrame

Desi am terminat cele doua diagrame USE CASE necesare proiectului nostru ( pentru elev si profesor) , nu sunt foarte multumita de ele. Le-am pus pe wiki ( click pe titlu pentru redirectionare). Ma voi apuca de diagramele de activitate si dupa ce le termin voi reveni asupra UML-urilor.
Cursul e de mare ajutor dar e bine sa aruncati o privire si pe wikipedia.

marți, 12 octombrie 2010

Tema proiect - specificatii detaliate

Vom avea de dezvoltat o clasa virtuala avand 2 actori implicati in sistem: student si profesor.
Un scenariu generic al sesiunii student este urmatorul:
• Acces la pagina principala a clasei virtuale
• Autentificarea (login) a studentului
• Acces la unul dintre cursurile la care este inscris studentul
• Vizualizarea uneia dintre sectiunile cursului (Prezentare generala, Anunturi, Continut, Teme, Portofoliu,  Membri curs)
• Trimiterea unei teme
• Terminarea sesiunii
Un scenariu generic al sesiunii profesor este urmatorul:
• Acces la pagina principala a clasei virtuale
• Autentificarea (login) a profesorului
• Acces la unul dintre cursurile pe care le preda profesorul
• Vizualizarea uneia dintre sectiunile cursului (Prezentare generala, Anunturi, Continut,Teme)
• Editarea sectiunii dorite
sau:
• Vizualizarea temelor trimise de studenti (in sectiunea Catalog)
• Introducerea de note si observatii
• Terminarea sesiunii


Pagina de acces este o pagina comuna pentru profesor si studenti si va oferi functionalitatea de autentificare. In urma autentificarii, utilizatorii vor fi directionati catre pagini diferite, in functie de rolul acestora (profesor sau student).
Pagina principala pentru profesor va contine o pagina de index si o pagina de informatii. Din pagina de index vor fi accesibile urmatoarele functionalitati:
􀂃 Lista de cursuri predate
􀂃 Profilul profesorului
􀂃 Terminarea sesiunii de lucru (logout)
La intrarea in clasa virtuala este afisata lista de cursuri pe care le preda profesorul si optiunea de creare a unui curs nou.
Pagina principala pentru un curs va contine: o pagina de index si o pagina de informatii. Din pagina de index vor fi accesibile urmatoarele functionalitati:
􀂃 Prezentare generala curs
􀂃 Anunturi
􀂃 Continut curs (capitole)
􀂃 Teme
􀂃 Catalog
􀂃 Studenti inscrisi la curs
􀂃 Lista de cursuri predate
􀂃 Profilul utilizatorului
􀂃 Terminarea sesiunii de lucru (logout)
(ultimele trei functionalitati pot fi grupate intr-o pagina de index separata).


La intrarea intr-un curs este afisat in pagina de informatii ultimul anunt postat. Pagina principala pentru studenti este asemanatoare cu cea pentru profesori, singura diferenta fiind faptul ca la intrare se afiseaza lista de cursuri la care este inscris studentul si optiunea de inscriere la un curs nou. De asemenea, pagina principala a unui curs este asemantoare cu cea pentru profesori, diferenta fiind inlocuirea functionalitatii "Catalog" cu "Portofoliu".


Exemple de functionalitati:
• Modul pentru inregistrarea unui utilizator.
• Modulul de control al accesului. Acesta va realiza autentificarea unui utilizator pe baza de nume si parola. Operatia de logout.
• Actualizarea datelor personale ale unui utilizator (adresa, email, descriere). Schimbarea parolei. Inscrierea unui student la un curs. (Se considera ca un student se poate inscrie la oricare din cursurile disponibile in clasa sa virtuala).
• Editarea continutului sectiunilor: Prezentare generala (text), Anunturi (titlu, text, data crearii), Continut (pentru fiecare capitol intereseaza: titlu, text, fisier atasat), Teme (titlu, enunt, pondere, data crearii, data limita) (sesiune profesor)
• Vizualizarea studentilor inscrisi la curs (sub forma unei liste cu nume, prenume, email si link catre o pagina cu descriere + poza) (sesiune profesor)
• Vizualizarea sectiunilor de Prezentare generala a cursului, Anunturi si Continut curs (sesiune student) (aceasta se va realiza prin simpla eliminare a functionalitatilor de editare din paginile dedicate profesorilor, avand in vedere faptul ca studentii au doar drept de citire, nu si de scriere in aceste sectiuni)
• Modul pentru gestiunea Temelor. Acesta trebuie sa permita:
o vizualizarea temelor (enunt; data limita; status – netrimisa, trimisa, citita, notata; data trimiterii).
o trimiterea rezolvarii unei teme (text si/sau fisier atasat)
Obs. Initial o tema este marcata ca "netrimisa". In momentul in care studentul trimite tema, aceasta isi schimba starea in "trimisa". In momentul in care profesorul o marcheaza drept "citita", aceasta isi schimba starea in mod corespunzator. In momentul in care profesorul introduce o nota, starea temei respective devine "notata". Un student poate retrimite o tema ori de cate ori doreste, pana la data limita, cu conditia ca aceasta sa nu fie marcata drept "citita" sau "notata".
 (sesiune student)
• Modul pentru gestionarea Catalogului. Acesta trebuie sa permita: o vizualizarea notelor obtinute la fiecare tema de studentii inscrisi la curs precum si nota finala;
o vizualizarea temei fiecarui student in parte (status – netrimisa, trimisa, citita, notata; nota; observatii; data trimiterii; rezolvarea).
o editarea notei si a observatiilor asociate
o marcarea unei teme ca "citita"
(sesiune profesor)
• Modulul Portofoliu, care trebuie sa permita vizualizarea notei si a observatiilor asociate fiecarei teme. (sesiune student)

http://software.ucv.ro/~epopescu/teaching/WAD/Specificatii%20clasa%20virtuala.pdf

Aplicatii Web

Datorita dezvoltării Web 2.0 observam o trecere de la aplicațiile desktop la aplicațiile web, asigurând astfel utilizatorilor o comunicare ușoară cu acces la versiunile updatate si cu un cost de întreținere redus. Dezvoltarea de aplicații web este un proces complex dar castigurile ulterioare sunt mari deoarece transferul informației intre utilizatori este rapid, avem independenta de platforma si timpul necesar instalarii de programe este aproape nul.
Aplicatiile web sunt utile acolo unde mai multi utilizatori trebuie sa introduca date intr-un mediu de stocare central. Bancile, scolile, firmele de vanzari toate au de beneficiat de pe urma acestora. Practic este nevoie doar de un calculator conectat la internet si datele de logare in aplicatie. Un avantaj aparut recent al aplicatiilor web este integrarea dispozitivelor mobile. Astfel, folosind un telefon mobil sau PDA cu acces la internet utulizatorul poate adauga sau extrage informatii dintr-o baza de date centrala.

Schema generala a proiectului

Azi am facut echipa si am realizat blogul.Vom avea de dezvoltat o clasa virtuala avand 2 actori implicati in sistem: student si profesor. In mare vom realiza proiectul dupa urmatoarea schema :