程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> DB2 J2EE開發成本收益分析(一)

DB2 J2EE開發成本收益分析(一)

編輯:JAVA編程入門知識

  介紹
  
  你聽說過這樣一個報道:還有另一種新技術承諾讓Java 2企業版(J2EE)開發者更便於進行J2EE的開發---一項能削減開發工作達百分之三十、四十甚至是五十的突破。一個新的軟件能使復雜的開發任務簡化。一 個新產品增強你現有的Java集成開發平台和網絡應用程序服務器環境。
  
  我們也聽說了同樣的報道。在同事間討論時,我們聽說IBM的新DB2 Information Integrator,能夠提供存在於不同平台上的、使用不同格式保存的、能通過各種不同的應用編程接口(API)訪問的數據的單地址映射。我們想知道這種技術能為需要使用完全不同的數據構建網絡組件的J2EE程序員做點什麼。
  
  在本文中,我們將討論一系列的servlet,在我們的案例中,我們構建這些需要訪問跨多個數據源-- DB2、Oracle和Excel的數據的servlet。一類 servlet使用DB2 Information Integrator模擬這些數據源的單一地址映像,而另一類直接地訪問每個所需的數據源。
  
  結果很讓我們吃驚,我們計劃把它們和你分享。
  
  在這三部分的文章系列中,我們將帶你進入我們的工作,這樣你就可以自己比較不同的實現之間的差異,然後了解我們必需克服的挑戰。本文是這個系列的第一篇文章,描述了我們的工程並概括了我們的重要的發現。 第二篇文章將把注重力放在我們的開發工作中,用更加詳盡的細節讓你了解設計和編程問題。最後一篇文章將描述我們碰到的執行性能問題,以及介紹用於我們的聯合數據庫和本地數據訪問實現的一些性能數據。
  
  但是假如你等不及把這些全部學完,那麼我在這裡告訴你:我們發現,當我們使用DB2 Information Integrator的聯合數據庫技術的時候,我們的開發工作實際上比我們直接訪問每個數據源要更簡單、更快捷。尤其是,我們減少代碼量達百分之四十,並且縮短了設計、開發和測試周期達百分之五十。這正是我們所期待的。
  
  並且,也許同樣重要,我們發現雖然不同的查詢結果變化很大(一些聯合查詢比直接數據訪問快,而其它一些要慢一些),我們的基於聯合數據庫技術的servlet的性能也比直接訪問數據的servlet更有競爭力。當然,基於特定的查詢問題和servlet設計實現,結果可能有差異。但是你將得到一個機會,評論我們的工作,這樣你就能看到它可能正好反映你的機構中的日常工作中的問題。
  要害技術的概述
  
  了解聯合數據庫治理系統(DBMS)技術和servlet對於領會我們的工程非常重要。在這裡,每個技術我們只是簡略的提到幾點,因為許多網站(包含這個)已經在這些主題上發布了許多教材和技術文獻。假如你已經熟悉聯合數據庫治理系統和服務器端Java技術,那麼請跳過這一節,開始閱讀關於我們做的工程的細節。
  
  了解聯合數據庫治理系統(DBMS)
  
  一個聯合DBMS提供了到多個數據源的單一應用編程接口(API)。這些數據源可能運行在不同硬件和操作系統平台,可能由不同的供給商開發並且可能使用不同的API (包含不同的非標准SQL語言)。程序員使用聯合服務器就可以以一種抽象程度很高的方式工作,因為服務器提供了物理上不同的數據的單一地址映像。 使用表(或者其它數據對象,比如文件)的別名能夠提供程序員位置透明性,消除那種他們必須精確知道要求的數據存放在何處的需要。功能補償可以掩蓋不同供給商的產品之間的差異,並且模擬一個給定數據源本身不支持的能力。多地址聯合推動來自不同數據源的數據的整合。
  
  數據源支持和產品功能在不同的供給商之間差別很大。DB2 Information Integrator支持所有的IBM DB2家族的成員,IBM Informix、Microsoft SQL Server、Oracle、Sybase、能使用ODBC的數據源、XML、網絡服務、WebSphere MQ、Excel電子數據表、普通文件和生命科學數據源。此外,DB2 Information Integrator還可以通過IBM Lotus Extended Search訪問網絡搜索引擎、內容貯存器、電子郵件數據庫和其它基於內容的數據源。
  
  因為DB2 Information Integrator包含一個非常強勁的關系數據庫治理系統,它可以存儲和治理它自己的本地數據對象,比如表、視圖和檢索。它的優化程序被設計來研究它的不同的和物理分布特性,以便它可以選擇對於每種查詢更有效的數據存取策略。DB2 Information Integrator的這個版本支持從單一事務中的多個數據源中讀取數據;編寫每個事務的數據源支持的行為。
  
  了解服務器端Java組件
  
  在許多網絡應用程序服務器環境中,公司經常地使用servlet和企業JavaBean ( EJB)來實現要害的業務程序邏輯,包含訪問可能保存在遠程服務器中的公司數據。 servlet是這兩個技術中較早的一種,經常用來替代公共網關接口(CGI)腳本來支持網絡頁面的動態內容。 servlet依靠一個請求-響應程序設計模型。
  
  Java程序設計環境提供了帶有用於編寫servlet和利用構建servlet時某些編程需求的接口和類的程序包。 例如,servlet包含服務器在適當的時候自動調用的基本的生命周期方法(比如從init,service和destroy)。 程序員可以--同時也經常這樣--根據需要覆蓋這些方法。 例如,我們的servlet在初始化期間查找DataSource對象(用於連接)以最小化額外消耗。 大部分的servlet工作都發生在doGet和doPost方法中。 我們的servlet使用這些方法執行相應的查詢並返回結果。
  
  EJB是實現極小行為集合的服務器端軟件組件,使用一種簡化應用程序開發和有助於促進其可移植性的方法來封裝業務程序邏輯。對生產應用程序,比如事務、安全和持久性等需要的函數的支持,是由EJB規范委托的。這個網站上的其它文章描述了如何整合entity EJB和DB2 Information Integrator,所以我們將不在此討論這個問題了。 然而,值得注重的是,我們為這個工程構建的servlet可以很輕易的被轉化為會話EJB。實際上,我們在某些案例中確實是這樣做的,並且發現開發成本和性能結果是大致一樣的 。
 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved