Posted on 2006-01-15 22:35
canonical 閱讀(605)
評(píng)論(0) 編輯 收藏 所屬分類:
軟件開發(fā)
jsp模型為web程序提供了page/request/session/application這四個(gè)基礎(chǔ)性的變量域.
這種變量域的劃分很大程度上是純技術(shù)性的, 與我們的業(yè)務(wù)應(yīng)用中需要的scope支持相去甚遠(yuǎn). 當(dāng)我們把業(yè)務(wù)對(duì)象的生命周期映射到這些變量域的時(shí)候,
經(jīng)常出現(xiàn)不適應(yīng)的情況. 例如我們可能被迫選擇把與某項(xiàng)業(yè)務(wù)相關(guān)的所有數(shù)據(jù)放置在session中并在各處硬編碼一些資源清理代碼.
為了實(shí)現(xiàn)與愈來(lái)愈復(fù)雜的應(yīng)用開發(fā)的契合, 我們需要能夠在程序中定義與應(yīng)用相關(guān)的變量域并實(shí)現(xiàn)對(duì)這些變量域的管理,
即我們需要一種自定義scope的支持而不是使用幾個(gè)固定的scope.
JBoss的Seam項(xiàng)目
http://www.jboss.com/products/seam 中引入了一種所謂declarative application state management的機(jī)制
http://blog.hibernate.org/cgi-bin/blosxom.cgi/Gavin%20King/components.html,
其中的關(guān)鍵是增加了business process和conversation這兩個(gè)應(yīng)用直接相關(guān)的scope, 它們都是可以根據(jù)需要自由創(chuàng)建的.
business process context使用jBPM支持long running的狀態(tài)保持. 而conversation
context是對(duì)session使用的一種精細(xì)化, 與beehive項(xiàng)目中的page flow所需的scope支持非常類似
http://beehive.apache.org/docs/1.0m1/pageflow/pageflow_overview.html. 但目前seam中的scope支持仍是非常原始的, 不支持嵌套的context, 這意味著對(duì)于復(fù)雜應(yīng)用尚無(wú)控制和管理能力.