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