<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    夢幻之旅

    DEBUG - 天道酬勤

       :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      671 隨筆 :: 6 文章 :: 256 評論 :: 0 Trackbacks
    現代軟件和以往傳統軟件主要區別在于:現代軟件基于internet互聯網技術,運行于開放的網絡環境,不象傳統軟件只是運行在封閉的局域網,運行環境的 區別就決定了軟件操作用戶的多少,在一個開放互聯網環境, 你的軟件系統用戶是不斷增長,特別是那些對所有人群開放的社區網站系統,更是承受前所未有的訪問負載。那么,這些軟件系統承受的壓力主要會集中在軟件的哪 個環節呢?如果你使用傳統軟件的設計思路,那么無疑壓力都集中在數據庫上。

      隨著用戶的爆發量增長,在某個凌晨醒來時,你發現:數據庫已死。

      傳統軟件系統實則應該叫數據庫軟件系統,是一個數據庫系統,開發這樣的系統非常簡單,成本 也非常低廉,只要根據需求先設計好數據表結構,然后,就找一些大學畢業生寫大量SQL語句,雖然還使用 JAVA/PHP/.NET等語言,但實際上這些語言只是將SQL送往數據庫執行的運輸工,沒有什么價值和地位。

      所以,這樣的系統運行在互聯網環境下以后,主要負載就集中在數據庫的SQL運行上,也就是說:整個軟件系統性能關鍵點就集中在數據庫上了,數據 庫是性能主角,是王者;雖然你購置了昂貴的Websphere/weblogic等應用服務器,但是由于Java只是運輸工,根本起不到性能上負載分擔的 作用。

      著名的社區網站MySpace就是因為一個好的idea,用戶瘋狂增長,但是系統卻不能平滑承受增長的用戶訪問,這些用戶訪問網站緩慢、無法訪 問甚至丟失數據,他們經過幾次傷筋動骨的架構升級,在微軟SQLServer直接技術支持下, 好容易才勉強應付過去。看看他們痛苦經歷,你是否也愿意再來一次呢?詳細情況: http://www.jdon.com/jivejdon/thread/34601.html

      從中可以看出,數據庫性能微調和挖潛總是有限度的,對數據庫性能優化提高性能的步伐永遠趕不上用戶增長量, 有人也提出數據庫集群的概念,其實數據庫集群是一個騙人概念,一般只是備份,在集群數量和failover上有制約, 否則,數據庫巨頭Oracle不會跑到JavaEE陣營搖旗吶喊,還最早推出EJB3服務器,并揚言要收購JavaEE過去老大 Bea Weblogic。

      很顯然,數據庫成已經為軟件系統的主要性能瓶頸了,單純依靠數據庫自救的方式已經行不通,是宣布數據庫退出主角時候了,那么由誰來宣布:教皇數據庫已死?無疑是Java。

      Java社區早在本世紀初就提出中間件概念,用以取代數據庫地位,實則就是將軟件系統主要負載從數據庫上轉移到中間件服務器上,分擔負載。 也就是說:Java社區提出:既然數據庫已經成為瓶頸,修修補補也無濟于事,不如放棄它,不再依賴它。

      也就是說:Java不再做SQL的運輸工,不再是跑龍套的了,而是主角,那么如何讓Java成為主角呢?那必須依賴對象這個概念,對象是生活在中間件服務器內存中,它又是數據庫數據的業務封裝,它和數據庫有著 千絲萬縷的關系,但是它又和關系數據庫存在天然矛盾,兩者水火不容。

      過去,我們是將業務邏輯寫成SQL送往數據庫執行,導致數據庫成為業務邏輯主要運行瓶頸,那么,如果我們將 業務邏輯用對象概念表達,而不是SQL,那么我們的業務邏輯就圍繞內存中的對象反復計算,這樣,負載不是集中在 對象運行的中間件服務器上(也就是應用服務器Weblogic/websphere/JBoss/Tomcat)?而對象/中間件都是用Java 語言表達的,無疑,這樣的架構,Java才成為主角。

      再進一步想想:如果我們從軟件系統開始之初,就使用對象分析設計,不與數據庫沾邊,整個流程就完全OO,分析設計直至代碼都擺脫了數據庫影響,這個流程如下:

      分析建模 細化設計(通過Evans DDD) 架構設計 代碼實現 調試測試 部署運行。

    那么數據庫在什么時候建立呢?數據庫表結構的創建可以延緩到部署運行時,由Hibernate/EJB CMP/JPA等ORM技術自動實現。這樣, 整個上游環節就不涉及數據庫技術,而是使用更符合自然的表達OO方式,軟件質量就更高了。我在J道網站已經大量闡述了如何從OO分析 到OO實現的過程,包括我的Jdon框架也直接支持這樣一個自然方式。

      現在,很多人已經理解,分析設計要用OO,但是數據庫是運行階段缺少不了的,確實,這是正確觀點,我們奪取數據庫的王位,不是將它打倒,只是理 性和平移交權力重心而已,數據庫退出主角地位,讓位于Java中間件,也預示著過去數據庫為王的時代的結束, 但是數據庫會和操作系統一樣,成為我們現代軟件系統一個不可缺少重要的基礎環節。

      正是基于這樣事實,雖然我早在2005年喊出“數據庫時代的終結一 文,回帖長達幾百貼, 大部分是懷疑論,不信論,由此可見,由于傳統觀點影響和不及時與國際新思想同步,國內數據庫保皇派還是有相當人數的。我BanQ人微言輕,拋出這些觀點被 保皇派譏諷為所瘋話,那么看看,著名ORM框架Hibernate和SEAM框架創始人Gavin King的一段觀點:

      In almost all enterprise applications, the database is the primary bottleneck, and the least scalable tier of the runtime environment. 數據庫成為了大多數企業應用的主要瓶頸,也成為了運行環境中最不具伸縮性的層。... PHP/Ruby的用戶會說什么都不共享(share nothing)的架構照樣具有很好的伸縮性,.... 這些傻瓜真正想的是“除了數據庫以外什么都不共享(Share nothing except for the database)”的架構。更多參看這里

      所謂伸縮性,就是彈性,整個軟件架構既支持小負載運行,也支持大負載支持,只要增加服務器即可; 由于軟件系統負載已經從SQL轉移到內存中的對象上,那么我們就可以通過增加這些應用服務器數量,通過分布式計算甚至云計算,達到業務對象在多臺應用服務 器之間傳遞共享,而不必通過數據庫這個環節,既減輕數據庫負載,又能輕松擴充性能,不必走 集中試大型主機之路,只要添置低廉PC服務器即可。經過權威測試:websphere/weblogic的20臺PC服務器集群性能不亞于一臺SUN/IBM的中型機,性價比已經一目了然了。

      JavaEE的服務器的集群相對于Linux等操作系統集群的好處在于:JavaEE集群能夠針對某個繁忙負載大的具體業務功能進行集群,換句話說: 就是做到精確制導,精確解決問題,而顯然,Linux操作系統的集群則無法直至業務核心的。

      從另外一個方面看:雖然現在PHP號稱走上對象路線,Ruby的鐵軌開始鋪進企業,但是他們的運行環境實則依賴數據庫的, 特別是Ruby On Rails還是最適合Evans DDD對象建模路線,但是目前來講還是"披著羊皮的狼",批著DDD,實則是以數據庫中心。當然相信 ROR等將來會提供分布式計算環境,但是JavaEE在2002年時就通過EJB以及分布式緩存成熟穩定地提供分布式計算的中間件,并且已經大量成熟應用。

    本文結束以前,我相信大家明白,在眾多語言平臺競爭中,為什么Java能夠擊敗過去拳王數據庫,奪得新的拳王冠軍,以及他的特點所在。有人可能會說:你忘記談.NET了,這個不用我回答你,用微軟中國董事長張亞勤的話回答:8年前.NET戰略很天真, 你會將你的重要業務企業計算依賴一個很天真不成熟的技術嗎?除非你自己也很天真:)。
    posted on 2008-10-14 14:30 HUIKK 閱讀(211) 評論(0)  編輯  收藏 所屬分類: Java
    主站蜘蛛池模板: 91亚洲精品第一综合不卡播放| 在线观看H网址免费入口| 日本免费电影一区| 亚洲中文字幕乱码AV波多JI| 国产一卡二卡四卡免费| va天堂va亚洲va影视中文字幕| jjizz全部免费看片| 亚洲一区二区三区在线| 久久久久久久久免费看无码| 亚洲不卡影院午夜在线观看| 香蕉高清免费永久在线视频| 亚洲AV无码一区二区三区网址| 国产在线不卡免费播放| 特级aa**毛片免费观看| 亚洲人成网站在线观看播放| 日韩免费在线视频| 亚洲国产美女精品久久久久| 久久WWW色情成人免费观看| 九九精品国产亚洲AV日韩| 亚洲日韩人妻第一页| 久久99毛片免费观看不卡| 亚洲天堂一区在线| 日本久久久免费高清| 国产精品无码免费专区午夜| 亚洲国产综合专区电影在线| 91精品免费在线观看| 无码天堂va亚洲va在线va| 亚洲欧洲美洲无码精品VA| 日本高清在线免费| 麻豆亚洲AV成人无码久久精品 | 亚洲男人av香蕉爽爽爽爽| 三年片免费观看大全国语| 亚洲手机中文字幕| 啊v在线免费观看| 国产成人一区二区三区视频免费 | 无码亚洲成a人在线观看| 日韩一卡2卡3卡4卡新区亚洲| 久久午夜伦鲁片免费无码| 亚洲精品无码专区| 亚洲AV无码专区国产乱码电影| 最新免费jlzzjlzz在线播放|