Eftir að hafa lesið yfir þær umræður sem hér eru í gangi ætla ég að koma með smá input með mér finnst vera að geymast hér, three-tier módelið. Hér skrifa ég með fókus á ASP þar sem PHP/JSP viska mín er frekar takmörkuð við fikt heldur en mikla kunnáttu.

ASP er scripting mál sem byggir ofan á com+ tækninni frá Microsoft. Ef málið er notað rétt í ASP umhverfi fyrir high-end vefi þá er það gert á eftirfarandi hátt. Vefnum er skipt upp í þrjú lög, Birting(Presentasion), lógík(Logic) og Gögn(database). Hvert lag er háð þeim lögum sem undir liggja en lag er ekki háð lögunum fyrir ofan sig. t.d. er Logic lagið háð gagnagrunninum en ekki öfugt.

Birtingar lagið er yfirleitt gert í ASP, þ.e. öll mát eru skrifuð í því. ASP-ið er þó háð laginu sem undir liggur, þ.e. lógíkinni, þar er öll gagnaúrvinnsla geymd, s.s. tenging á milli taflna í gagnagrunn og úrvinnslu gagna.

Næsta lag, lógík, sér um úrvinnslu gagna. Oft er þetta lag skrifað sem component í VB/C++/JAVA, en í raun skiptir það ekki máli enda hægt að skrifa hann í hvaða tungumáli sem er. Með því að vera með þetta í component eru aðalega tveir kostir sem standa uppúr: Kóðin er kompælaður, þ.e. hann keyrir mun hraðar. Þegar þetta módel er notað myndast svokallað black-box, þ.e. að að hver sem er getur notað komponentin án þess að vita hvernig hann virkar í raun(black-box er efni í heila aðra grein svo ég geymi það til betri tíma).

Þriðja lagið, gagnagrunnurin, er í raun bara vöruhús, þar er gögn geymd, sótt, eða eytt af laginu fyrir ofan, þ.e. lógík. Þetta lag getur tekið margar myndir, s.s. SQL-server af einhverju tagi, XML-skrár, texta-skrár eða jafnvel bara forrit sem geymir gögn í minni(cache). Oft er þó bætt við einhverri lógík í þetta lag er sá möguleiki er fyrir hendi, t.d. að sjá um heilindi gagna.

Oft er lagi 2(lógík) og 3(gagnagrunnur) steypt saman í sama hlutin sem gegnir þá hlutverki beggja. Það er þá gert með Venslagagnagrunnun(mysql, oracle) sem bjóða upp á triggera og stored procedures(ef einhver veit góð og gild íslensk orð yfir þetta látið mig vita).

Kosturinn við þetta módel er sá að ef fyrirtæki vill síðar meir t.d. skrifa sér forrit sem t.d. þjónustuborð notar, þá er lógíkin öll til í lagi nr 2 og einfalt er að skrifa forritið, því jú, það er bara einfaldur com+ hlutur sem eingöngu þarf að búa til nýtt Birtingar-lag á. Þetta módel á ekki eingöngu við vefforritun heldur hvaða forritun sem þar sem geymsla og úrvinnsla gagna á sér stað.

Tengt efni:
http://msdn.microsoft.com/library/techart/designeff_three.htm (fjallað um grun módelið ásamt afbrigðum s.s. fat client og fat server)

http://msdn.microsoft.com/library/default.asp?URL=/library/partbook/asp20/threetierapplicationmodel.htm (fjallað um hvað tree tier er og munin á monolithic, two-tier og three-tier)

- oddur.magnusson