首先是UI層很難由美工和系統設計師來總體設計
由於即使是Delphi之類的可視化開發工具
界面問題還是要程序員自己調整
解決這個問題可以走兩條路
用自己的皮膚系統和美工本來就會IDE
其次是服務層的標准缺少
雖然Corba之類早已出現
但是昂貴的費用和實施的難度太大了
事實上這樣的服務層確實有象BEA的Tuxedo
IBM的CICS等
但伸縮性小
使用范圍小
不算是老少鹹宜
最後是數據層一般是直接存取數據庫
高級一點的是通用性強一點
能多訪問幾個數據庫
但遠沒有到對象持久化這種程度
傳統三層架構B/S J
EE架構的推出帶來了很大的進步
先前推出的PHP
ASP等嵌入式腳本語言只限於一種模板腳本語言而已
真正的架構還是從J
EE開始起的
早期J
EE還未成熟
這張圖應該是J
EE
以後的
至少是EJB
以後的
在UI層與其他腳本嵌入語言類似
模板+腳本
仍然沒有較好的Action功能
這直到Struts之類的出現才開始改觀
SeesionBean的出現加速了服務層的建立
讓業務邏輯真正可以獨立出現
盡管現實沒有這麼理想
Entity Bean的出現
特別是CMP的出現
建立了對象持久層
數據庫再也不需要了解細節了
甚至對象數據存在哪裡都沒人想知道了
雖然有這樣那樣的困難和問題
現代多層架構 多層架構是從開源開始的
Struts是著名的MVC
盡管現在看來問題還是不少
但是不可否認
它的功勞是顯著的
AspectJ帶來了AOP
讓開發換個思路
Spring讓這些看上去很簡單
重新發掘Bean的力量
WebWork
JSTL
Tapestry
JSF
PIO
Hibernate
Castor等等一系列的開源計劃層出不窮
我可以列到你開始嘔吐為止
有很多顯著的特點
注重UI層的簡化開發
強化模板引擎和組件開發
使Action或Lisnter成為標准配備
服務層強調弱耦合
可以與多個輪子一起工作
方便更換合適的框架
甚至考慮兼容傳統系統
對象持久大行其道
都是針對EJB的軟肋去的
但
的發布會彌補EJB的問題
各大廠商爭相搶奪市場
工具和服務器和版本飛漲
跳得比計價器還快
XML大行其道
已經成為標准格式
至少是配置文件和轉換模板的標准
現代架構簡介 View 展示層
顯示內容
接受用戶人工信息
Template Engine 模板引擎層
使用模板的方式產生最終View展示層的內容
Action或Listener 動作或監視層
接受用戶人工動作
根據動作反饋
Control 控制UI層
控制UI的動作反饋
頁面流程
Service 服務層
除業務邏輯以外的系統邏輯
訪問域邏輯的接口
轉發訪問域邏輯的請求
Domain Logic 域邏輯層
業務邏輯
與傳統遺留系統的業務邏輯接口
Domain Model 域模型層
業務模型
與業務有關的對象模型樹
包括對象屬性和之間的關系
XML Model
用XML定義的域模型
鑒於XML的重要性
單獨列出
Object Model
用Object對象來定義的域模型
Object Persistent 對象持久層
將域模型對象持久化
Database System 數據庫系統
關系型或對象型數據庫系統
代表了存儲系統
應用級架構 可能應該稱為實用架構
因為以下這些架構與現代架構不沖突
是建立在現代架構基礎上的應用級架構
光有現代架構當然對開發來說並沒有省心
反而是更增加溝通和培訓成本
因此應用級架構
或可稱為中間件
非常重要
應用級架構是用來解決各種業務問題的高層次架構
Workflow 工作流
解決一切依賴流程的業務系統中的流程部分的問題
工作流只管流程
E
Form 電子表單
解決一切業務系統中需要頻繁變動界面
包括電子表單設計器和編譯器
Protal 門戶
解決多個業務系統的高級集成
多業務系統不僅是展示層上的集成
更深入到互動地集成
將可能產生相互影響
Data Exchange 數據交換
數據傳輸和格式轉換
解決多個業務系統的數據交換問題
Message 消息中間件
解決異步消息傳輸問題
Instance Message 即時消息
解決即時溝通交流問題
並且允許與業務系統互動
Real
Time 實時系統
對時間和高可靠性的要求
Embedded 嵌入式系統
開發各種其它設備上的應用系統
From:http://tw.wingwit.com/Article/program/Java/hx/201311/26990.html