今天看了一片文章說純Java報表很好,控制項方式(ActiveX)報表全不及的文章http://www.dwway.com/html/10/n-2210.html ,最近關於純Java報表未來發展趨勢的話題在程式員中引起了激烈的討論,甚至部分人開始懷疑純Java 報表是否已經過時,以及它的存在周期到底會有多久的問題。控制項方式報表產品代表如尚南,純Java報表產品代表如潤乾。對此,編者為您做了以下文章,供您參閱。
奇怪的是如果控制項方式真是前文說部署差、效能又低、又不能跨平台,那為什麼 Cognos (IBM收購的BI公司)也採用ActiveX控制項方式設計,又為什麼Business Objects XI (SAP收購的BI公司)也採用ActiveX控制項方式設計?
前文提及,控制項方式的缺點在於:
1. 部署:一個控制項,要完成報表伺服器所實現的大部分功能,體積可想而之。功能越強,控制項的體積越大。這對於部署是一個很大的負擔。不僅如此,而且,當報表系統升級時,使用者都必須重新安裝控制項。
真實測試結果: 利用純Java報表產品提供前端瀏覽器採用標準HTML列印就能實現報表列印失真效果。純Java報表精確列印需要下載Java Applet,也就是說要在每個客戶前端裝JRE(Java Runtime Environment) 15.2MB 和 JDK (Java(TM) SE Development Kit) 56MB,才可以做到列印不失真。
真實測試結果:現在Business Object與 Cognos在報表系統升級時,提供了零安裝控制項功能。
2. 效能:在PC端計算與在伺服器端計算,對小報表可能差別不大,但對於大報表,顯然差異非常大。並且,如果一個Web報表系統有多個使用者都要使用,伺服器方式可以採用的定時計算、緩衝等等都無法發揮作用。
真實測試結果:現在Business Object與 Cognos 能查詢TB級海量資料,純Java報表50萬行資料,26個常規欄位,做最簡單的網格式報表,然後預覽報表時會出現以下錯誤"記憶體佔用太多,無法正常計算報表"。
測試機器硬體環境
作業系統: |
Microsoft Windows XP professional sp2 |
記憶體: |
2GB RAM |
CPU: |
Genuine Intel CPU T2300 1.66Hz |
硬碟: |
80G |
技術原因:系統能否承受高並發量及訪問量,與控制項Active X的關係並不大,因為控制項Active X僅僅是做為用戶端表現層,而且服務端肯定有相應的其它技術如JAVA,.NET.ColdFusion.或者PHP以及相應資料庫.並發量瓶頸更多由服務端決定,包括了服務端的技術架構,WEB容器的參數,以及資料庫配置參數和WEB server以及DB server的硬體設定,這些共同決定了系統的效能。但為什麼控制項Active X BI在同一台機器中能達到TB及海量資料查詢,原因是採用了Rich internet application(ria富用戶端)技術,Flex是Macromedia最新發行的presentation server(展現服務),大名鼎鼎的Macromedia Flash是強大的向量動畫編輯工具,為什麼也向富用戶端技術開發?
為何國際BI公司都不採用純Java技術開發,原因就是效能的瓶頸,富用戶端大大減低伺服器端的計算工作,將30%-50%工作讓前端計算。奇怪的是,有人說,純Java技術怎樣效能好,效能勁, 有趣! 有趣!
市場價格證明一切:
純Java報表產品市場只賣幾千元? BI公司控制項Active X設計賣幾百萬?
事實上為進一步實現後台跨平台,國際知名BI公司Cognos進一步推出前端Active X後台Java技術混合資料處理設計,報表產品代表如尚南也進一步推出此設計。