數據庫在未來
j2ee
開發中的角色已經不在重要
以數據庫為核心的軟件時代已經過去,數據庫時代早已結束
.
如果你重視數據庫,你的
J2EE
系統就無法完全面向對象,只有你忽視數據庫,你的系統才有可能完全邁向面向對象,至于數據庫性能調優等特定功能都可交由
EJB
容器或
O/R Mapping
工具實現.
B/S
代表的多層架構是當今
j2ee
開發中的核心
.
多層架構實際是將以前系統中的顯示功能、業務運算功能和數據庫功能完全分開,杜絕彼此的耦合與影響,從而實現松耦合和良好的可維護性。
一.???????????????????
從設計上說:由于實現層次完全分離,業務運算功能成為一種中間功能(中間層),它不依賴具體的表現層技術
(Jsp/Html applet
等
)
,也不依賴具體數據庫技術(
Oracle/SQL Server
),業務運算功能運行在
J2EE
應用服務器中,當我們的業務運算功能不再依賴數據庫,意味著數據庫不在是核心開發點
.
二.???????????????????
當然,多層結構帶來了性能問題:客戶端訪問數據庫中的數據時,通常需要經過多個層次,非常耗費性能,
如何盡量減少數據庫訪問是
J2EE
應用系統首要解決的問題,使用存儲過程并沒有解決這個問題,存儲過程的執行還是屬于后端,并沒有縮短客戶端請求所要經歷的坎坷路途。
解決性能問題的根本解決之道是使用對象緩存,現在,
64
位
CPU
提供的巨大內存空間為單臺緩存計算提供了硬件基礎,更重要的是,這種緩存計算是可伸縮的,通過集群的緩存機制(如
JBossCache
),
通過增加應用服務器的數量,可以提高整個業務邏輯層的緩存計算能力,拋棄過去那種為內存斤斤計較的老思維吧。
三
.
在系統分析之初是否首先需要數據表設計呢?回答是否定的,
以
UML
為代表面向對象的分析設計方法已經成為強大工具,隨著面向模型驅動分析設計(
MDA
)的普及,
面向數據庫分析方法正在逐步被拋棄,擁有深厚傳統數據庫分析習慣的程序員必須面對和接受這種挑戰。
縱觀整個
J2EE
系統開發過程,數據庫已經從過去的中心位置降為一種純技術實現,數據庫只是狀態持久化的一種手段(文件是另外一種實現手段);什么是持久化?這是相對于內存緩存狀態而言,持久化就是當內存斷電情況下能永久保存狀態數據,但是如果
J2EE
應用服務器是
7X24
小時集群運行;幾乎永不當機,是否有持久化的必要呢?
很顯然,數據庫已經淪為與操作系統中文件系統同樣的層面,以它為中心的時代真的結束了,
IBM
早期將
DB2
數據庫開源已經強烈向我們昭示這點。
對于
J2EE
開發者來說,盡早拋棄過去的兩種影響:過程語言編程習慣和以數據庫為中心的設計習慣,從全新的面向對象角度
(OOA
、
OOD
和
OOP
、
AOP)
來設計開發你的
J2EE
系統,
J2EE
設計開發三件寶:
Model
、
Patterns
和
Framework
?