鳳凰涅磐,浴火重生!

          超越他人的期望,才能讓人感動!

          2007年3月6日 #

          一山無二虎:數據庫時代是否即將終結?

          說實話,作為一名想在數據庫此領域長期發展的DBA,聽到這種聲音很吃驚,當然也不能茍同。

            以數據庫為核心的軟件時代已經過去,數據庫時代早已結束,當我看到J2EE征途中那么多人在對象和數據庫之間彷徨痛苦ing的時候,我想我該出來喊一聲了。

            其實這句話在幾年前肯定有人喊過,因為中間件時代的來臨,實際意味著數據庫時代終結,正所謂一山無二虎:如果你重視數據庫,你的J2EE系統就無法完全面向對象,只有你忽視數據庫,你的系統才有可能完全邁向面向對象,至于數據庫性能調優等特定功能都可交由EJB容器或O/R Mapping工具實現。

            很多年前,包括我自己在內的大部分企業程序員都是從數據庫開始我們的職業生涯,最早的是dBase/FoxPro,后來有了 SQL系列數據庫, Oracle將數據庫時代推向了頂峰。

            每當有一個新項目時,第一步就是首先設計出數據表結構(Table Schema),然后開始使用SQL語句實現業務邏輯,這種開發模式一直重復,就是后來加入了DelPhI/VB,他們也只是承擔圖形顯示實現,這種C/S結構帶來最大問題是:非常難于維護,修改起來,遷一動百。

            軟件的生命在于運動,當它需要發展時,最棒的軟件人員如果對他也束手無策,這是誰的悲哀?

            現在更多人開始接受B/S結構,但是他們中很多人還沒有真正明白為什么需要B/S結構,B/S代表的多層架構才是真正目的(因此,偽多層的B/S系統遍地皆是)。

            多層架構實際是將以前系統中的顯示功能、業務運算功能和數據庫功能完全分開,杜絕彼此的耦合與影響,從而實現松耦合和良好的可維護性。

            一. 從設計上說:由于實現層次完全分離,業務運算功能成為一種中間功能(中間層),它不依賴具體的表現層技術(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。

            以上不只是理論,而是我每天正在做的,如果你也是或贊同請廣為傳播,喚醒更多彷徨痛苦的初學者。

          引用:
          http://www.enet.com.cn/article/2007/0308/A20070308473940.shtml

          posted @ 2007-03-08 21:39 whirlyzhq 閱讀(237) | 評論 (0)編輯 收藏

          DOJO + JSON

               摘要: 曾幾何時ajax已經遍布大江南北,然而單純的js難于閱讀和debug,dojo的出現,無疑部分地解決了這個問題,加上ide的支持,更是如虎添翼了!引用一篇IBM的文章,看看dojo的應用吧。以下是引用內容: 使用 Dojo 工具包和 JSON-RPC 構建企業 SOA Ajax 客戶端 ...  閱讀全文

          posted @ 2007-03-06 16:54 whirlyzhq 閱讀(2172) | 評論 (0)編輯 收藏

          為什么選擇Flex而不選擇Ajax-Newbie asks why Flex (轉)

          對企業系統架構的UI選用一直十分地困惑,又是標簽,又是ajax等等。之后朋友跟我說應該學XUI,一句話——煩透了!今天看到關于FLEX的一篇文章,大家討論一下,它的結局會是怎么樣的,也正好作為本人的借鑒!(已經迷失方向了,呵呵)

          以下是引用內容:
          一位名叫mabrams_us 的網友在flexcoders的mailinglist中征求大家對使用flex的意見(why one should invest in learning Flex as a career move opposed to focusing on other technologies.)
          于是有兩位網友作了精彩回答,我認為比較經典,現在摘出來給大家分享。
          ------------------------------------------------------------------------------------
          boy_trike :
          let me give you some of the reasons why I have decided to embrace FLEX as our featured
          development tool (notice I did not say RIA tool, but development tool.) I have been
          building custom data-centric solutions for about a zillion years (ok, over 30 anyway) and
          always am on the lookout for a new and better tool. My friends call me "database of the
          month club" since I keep trying, switching, switching back from all of the latest and
          greatest solutions. (Tried AJAX, but did not find the right toolset yet.). The reasons are:

          FLEX FEATURES
          Flex's main advantage is the agility it adds to building a rich user interface with database
          connectivity.

        1. Performance is very good

        2. Can use external style sheets
          o Allows a graphic artist to work on the UI
          o Easy customization

        3. Any object can move, be resized, skinned, wiped
          o Better use of screen real-estate
          o Can eliminate overlapping windows
          o Users attention can be focused / directed

        4. Screen Independent - Run Anywhere
          o PC
          o Web
          o Phone???

        5. Open / extensible
          o Expect library of components to be released
          o Can connect to other server objects
          o Can connect to Web services
          o Eclipse IDE is open and expandable

        6. Adobe / Macromedia
          o Support / Training
          o Inexpensive Toolkit
          o Free Runtime

          Good luck with whatever you decide to embrace, but DO embrace it. (as someone once
          asked me, how can a computer programmer drive a Porsche? I said its easy, just be the
          best at something!

          Bruce
          轉:http://blog.csdn.net/lwz7512/archive/2007/01/16/1484262.aspx
        7. posted @ 2007-03-06 15:19 whirlyzhq 閱讀(372) | 評論 (0)編輯 收藏

          主站蜘蛛池模板: 牡丹江市| 东台市| 循化| 恩施市| 汉寿县| 佛教| 邹城市| 白银市| 沈阳市| 泉州市| 神农架林区| 安远县| 沅陵县| 闽侯县| 开化县| 鸡西市| 怀安县| 柳林县| 台州市| 霍城县| 墨脱县| 雷州市| 金溪县| 平遥县| 加查县| 岱山县| 榆林市| 铁岭县| 治多县| 清流县| 会宁县| 柳河县| 商丘市| 师宗县| 博湖县| 左云县| 九台市| 镇江市| 闽清县| 南京市| 侯马市|