LU Maģistratūras studiju kurss:
Tīmekļa programmēšana

Anotācija

Studiju kursa mērķis ir iepazīties ar Web aplikāciju programmēšanas tehnoloģijām, projektēt šādas aplikācijas, nodrošināt to platformneatkarību, dažādu aplikācijas aspektu atdalīšanu pēc iespējas neatkarīgos moduļos, lietotāja ērtībām piemērotu dizainu un piemērotāko rīku izvēli. Teorētiskajā jomā kurss satur Javas Web konteineru, izstrādes paraugu, aspektorientētās programmēšanas un XML tehnoloģiju sistemātisku izklāstu.

Konkrēti apgūstamās lietas. Analizēt Web aplikācijas prasības, projektēt tām atbilstošu objektmodeli, izvēlēties un salīdzināt dažādus lietotāja interfeisus no lietojamības viedokļa, saprast Javas Web konteinera vispārīgo arhitektūru, un kā tā izmantojama aplikāciju karkasos (Struts, Spring, Tapestry). Attēlot informāciju platformneatkarīgi ar XML un manipulēt ar to. Izstrādāt Web aplikācijas Javā kā arī izmantot, pielāgot un integrēt atbilstošus rīkus arī ne-Javas valodās, piemēram, PHP.

Prasības kredītpunktu iegūšanai

Jāpilda 4 praktiskie darbi Web programmēšanā - 60% no kopējā vērtējuma (t.i. vai nu jāizvēlas 4 praktiskie darbi no 8 dotajiem praktiskajiem darbiem ar formālākām prasībām; vai arī jāprogrammē viens liels projekts, kurā prasības ir definētas tikai neformāli.). Kontroldarbs semestra vidū - 15% no kopējā vērtējuma (pārsvarā pārbauda tehnoloģiskas zināšanas - to studenti pilda individuāli mājās.). Rakstisks eksāmens kursa beigās - 25% no kopējā vērtējuma (teorētiskāks galaeksāmens - to pilda klasē).

latvian university DatZ5008 fall2005 week2 presentation

Lekcijas

  1. 1.lekcija (2005-09-06). Javas ievads ( mStart, mOOP, mVar, mExpr, mArr, mClass). Rīki - J2SDK, Eclipse.
  2. 2.lekcija (2005-09-13). Javas turpinājums ( mAdvClass, mExcept, mInOut, mSystem, mCollections, mJDBC). Rīks - MySQL RDBMS.
  3. 3.lekcija (2005-09-20). Hibernate O2R karkass ( Chapter 2. Introduction to Hibernate), JUnit testēšanas karkass (www.junit.org, JUnit.ppt[FTP]). Rīks - Ant.
  4. 4.lekcija (2005-09-20). JSP, servletu pamati, Web aplikācijas standartkonfigurācija. Rīks - Tomcat Web aplikāciju serveris.
  5. 5.lekcija (2005-10-04). JSTL pārskats un Web aplikāciju modelēšana ar UML. OO pamatprincipi un koda refaktorizācija. Eclipse refaktorizācijas iespējas.
  6. 6.lekcija (2005-10-11). XML pārskats. XML validācija ar XML Schema. Validācijas rīki.
  7. 7.lekcija (2005-10-18). XSLT un XPath. RDF datu modelis. Transformācijas rīki un RDF parsētājs.
  8. 8.lekcija (2005-10-25). Spring karkass un MVC. Model-2 arhitektūra Web aplikācijām.
  9. 9.lekcija (2005-11-01). Zināšanu attēlošanas formāti: RDF un OWL.
  10. 10.lekcija (2005-11-08). HTTP sesiju uzturēšana, servletu filtri, tagu bibliotēkas, Web aplikāciju testēšana.
  11. 11.lekcija (2005-11-15). EJB aplikācijas.
  12. 12.lekcija (2005-11-22). XML prezentācijas formāti: SVG, MathML, WML.
  13. 13.lekcija (2005-11-29). Spring karkasa AOP. Ilustrācija: Simetriskas lauztas līnijas.
  14. 14.lekcija (2005-12-06). Ontoloģiju izstrādes šabloni ar Protégé.
  15. 15.lekcija (2005-12-13). Biezie klienti: AJAX Web aplikācijas, MIDlet aplikācijas.
  16. 16.lekcija (2005-12-20). Tēmu un vingrinājumu pārskats un atkārtojums

Praktiskie darbi

  1. ex01 - Datu piekļuve ar Hibernate
  2. ex02 - Spring MVC
  3. ex03 - XML Schema, XSLT, SVG, WML
  4. ex04 - Figūru simetrija: Ievads Spring komponentos un Javas kolekciju API
  5. ex05 - JSP tagu bibliotēku programmēšana
  6. ex06 - Maģistratūras studiju ontoloģija
  7. ex07 - Jebkura AJAX klient-servera aplikācija
  8. ex08 - Jebkura MIDleta kā HTTP klienta-servera aplikācija

Tēmas

1.Tēma: Web un standarti (IETF, W3C)
Webiskās komunikācijas standarti. HTTP protokols un ar to saistītas lietas - URL adreses, MIME tipi, kodējumi, valodu kodi, datumu un laika konvencijas, cepumiņi. SSL un HTTPS protokoli.
2.Tēma: Marķēšanas valodas
XHTML, CSS, JavaScript, XML, SVG un MathML. Elektroniskie dokumenti un to marķēšanas alternatīvas.
3.Tēma: Web aplikāciju paveidi, lietojamība un dizains
Web vietņu žanri (e-komercija, ziņu mozaīkas, firmu mājaslapas, kopienu forumi, pašpārvalde un bezpeļņas organizācijas, izglītības, mākslas un izklaides vietnes), navigācijas rīki un lapas izvietojums, satura pārvaldība, vietņu zīmoli jeb brendi.
4.Tēma: Objektmodelēšana Web aplikācijās
Web vietņu diagrammas un UML stereotipi. Sadarbības diagrammas, lietojot Model 1 vai arī Model 2 karkasus.
5.Tēma: JSP sintakses pamati. Servleti un servletu konteiners; komponentu dzīvescikls
Skriptleti, izteiksmes, deklarācijas un direktīvas JSP lapās. Mainīgo redzamība (application, session, request, page), <jsp:useBean> utml. iebūvētie tegi. Servletu sintakses pamati. JSP un servletu komponentu inicializācija un dzīvescikls. Vienkāršākās konfigurācijas iekš web.xml.
6.Tēma: Parametru konfigurācija, klausītāji, filtri
Servletu parametru konfigurēšana. Kļūdu lapu konfigurēšana. Web aplikācijas notikumi un to klausītāji. Servletu filtri un to lietošana - pārkodējumiem un autentifikācijai.
7.Tēma: Sesijas, Web aplikāciju drošība, plūsmas nodrošināšana.
Sesiju atbalsts Javas Web aplikācijās. Cepumiņu un sesijas IDu lietošana. Bāzes autentifikācija, programmētā autentifikācija, CHAP protokols. Uzbrukumi klientam: Session fixation, session highjacking, cookie theft. Drošība Javas servletu aplikācijā - atļauju konfigurēšana. Aplikācijas plūsmas nodrošināšana - vietnes lapu apmeklēšana noteiktā secībā, izvairoties no "Back", "Refresh" un grāmatzīmju radītā sajukuma.
8.Tēma: Objektu-relāciju karkass Hibernate; tā integrēšana ar EJB
Hibernate O2R attēlojumu (mappings) pārskats. Hibernate un vairāki veidi, kā tajā konfigurēt datubāzu konekciju fabrikas vai DataSource. JNDI un RMI pamati. Stāvokļa un bezstāvokļu sesiju EJB komponenti. Sesijas EJB pārveidošana par Web Servisu.
9.Tēma: JSP tagu bibliotēkas, JSTL. Notikumu karkass Tapestry
Lietotāja definēto (custom) tagu ieviešana JSP. Tagu standartbibliotēka JSTL. Karkass Jakarta/Tapestry.
10.Tēma: MVC paterns, Spring MVC. Izvietojums ar Java Server Faces vai citu karkasu.
Jēdziens par Model 1 un Model 2 aplikācijām. Spring karkasa lietošana MVC aplikāciju veidošanā. Aplikāciju izvietojums (layout); tā veidošana ar Java Server Faces, Tiles vai citu karkasu.
11.Tēma: IoC paterns. Aspektorientētā programmēšana, Spring AOP.
Spring karkasa citi lietojumi un šajā karkasā izveidoto aplikāciju testēšanas īpatnības.
12.Tēma: XSLT un dažādas XML tehnoloģijas Webā
Vispārīgi XML standarti: XML+DTD, XSLT, XPath, XQuery, XML Schema. Bieži lietojamie prezentācijas standarti: XHTML, SVG, MathML, FO, WML. XML datu parsēšana Javas programmās.
13.Tēma: Apleti. Mobilās un bezvadu aplikācijas - WAP un MIDP.
Apleti, Swing,SWT un cita klienta puses Java. WAP protokola pamati. Web skatu filtrēšana ar XSLT par WML. MIDP specifikācija un midletu programmēšana.
14.Tēma: PHP rīki - PHPNuke, PostNuke, Drupal, vBulletin, phpBB
Satura pārvaldības sistēmas, forumi un citi gatavi PHP vietņu veidošanas rīki. To integrēšana ar Javas aplikācijām.
15.Tēma: Community Web, portāli, blogi, Wiki, FOAF
Satura sindikācija un RSS, agregatori, Wiki rediģēšana, semantiskais Web darbībā

Prezentāciju idejas

  • HTTP and related standards (1.tēma)
  • Cookies and privacy matters (1.tēma)
  • SSL, HTTPS and authentication in the Web (1.tēma)
  • Diskusija: Speciālsimboli DNS vārdos un URL adresēs? Ko darīt ar Plūsmas izaicinājumiem - 'Refresh', 'Back', 'Forward', manuāliem URL izsaukumiem? Vai visas HTTP iespējas ir nepieciešamas Web aplikācijās? Kā Web-aplikāciju programmētājam (ne)vajag lietot cepumiņus? (1.tēma)
  • HTML and CSS - appropriate level of markup, separating markup and presentation (2.tēma)
  • What is typical with JavaScript (2.tēma)
  • SVG, MathML and ways to extend HTML (2.tēma)
  • Diskusija: Vai vajag ievērot HTML standartus un validēt lapas? HTML salīdzinājums ar drukaajamo dokumentu formātiem LaTeX, FO, DocBook. (2.tēma)
  • Informācijas grafiskais dizains (3.tēma)
  • Web vietņu veidi un navigācijas modeļi (3.tēma)
  • Dinamisks dizains (3.tēma)
  • Diskusija: Vai lietot sarežģītas JavaScript konstrukcijas? Freimu priekšrocības un trūkumi. Dizaina atdalīšana no citiem Web izstrādes procesiem (3.tēma)
  • UML diagrammas ar Web stereotipiem (4.tēma)
  • Struts utml. MVC aplikāciju modelēšana (4.tēma)
  • Tapestry utml. notikumbalstīto aplikāciju modelēšana (4.tēma)
  • CVS, Subversion - configurations and version control systems (5.tēma)
  • Apache Ant, XDoclet (5.tēma)

Teorētiskākas tēmas galaeksāmenam

  1. HTTP protokola iespējas
  2. HTTPS/SSL protokoli; Web lietotāju autentikācijas mehānismi
  3. Dažādu uz XML balstītu valodu vispārīgs raksturojums un iespējas
  4. CSS selektori (CSS v2.1)
  5. JavaScript/ECMAScript valodas vispārīgas īpašības
  6. DOM interfeiss
  7. O2R attēlošana, Hibernate kā objekt-relāciju attēlošanas rīks
  8. Servletu un JSP sintakse
  9. Web konteineri un web.xml sintakse un īpašības
  10. Web un J2EE aplikāciju konfigurācijas, Apache Ant
  11. Atribūtorientētā programmēšana un XDoclet
  12. J2EE izstrādes paraugi un EJB izmantošana Web aplikācijās
  13. RDF datu modelis un tā attēlošanas veidi

Literatūra


Lapa mainīta 2005-12-30 16:39:30