Java技術在多資料庫系統中的應用研究

vjvj110發表於2022-05-10

本文討論的是在多種異構資料庫下,如何進行多資料庫的訪問,並分析了使用Java技術下的各種方法進行多種異構資料庫下的資料交換。  關鍵詞 異構資料庫;EJB;Servlet  引言  現在的各種資料庫應用,由於技術、歷史等因素,往往在一個大的部門中並存有多個應用系統。這些應用系統可能分散於不同的網路節點、基於不同的操作平臺、使用不同的資料庫管理系統,且各子系統封閉執行,自成一體,這樣給不同部門的資訊資源共享帶來困難。如何在不改變原來系統的內部資訊的前提下,完成不同資料庫系統間的資料訪問和交換是值得研究的問題。  多資料庫系統的Java解決方案  多資料庫系統的構成有多種方式,在這些方式中,我們考察這些多資料庫的不同點,其主要表現在以下幾個方面的異構:  (1)資料庫邏輯資料模型的異構:有層次、網狀、關係、物件-關係和物件五種資料庫。  (2)資料庫物理資料模型的異構:物理資料模型反映資料庫儲存結構,例如物理塊、指標、索引等,即使邏輯資料模型相同,如關聯式資料庫的ORACLE、SYBASE、DB2等,其物理資料模型也存在差異。  (3)作業系統的異構:UNIX、WINDOWS系列、MacOS、OS/2、DOS等。  (4)計算機平臺的異構:從巨、大、中、小型機到工作站,微機以及手持機。  (5)網路的異構:LAN、WAN、以太匯流排結構與令牌環結構等。  在這些異構中,有些是資料庫歷史所造成的,如層次、網狀型別的資料庫;有些是不同的資料庫開發商開發的不同的資料庫管理系統造成的;有些是計算機作業系統的不同;而有些是網路結構和計算機平臺的原因。對於這些不同,從目前來看,我們認為當前應該著重解決的在關係模式下的不同的作業系統和不同資料庫管理系統。  眾所周知,Java技術是全新的程式設計技術,它具有平臺無關性、物件導向、安全、高效能、分散式,多執行緒等特點,使Java成為當前最為型別的程式語言和平臺。對於多資料庫系統聯合訪問和資料交換,使用Java技術可以解決不同的作業系統和不同的資料庫管理系統之間的資料處理。  1)使用Java Bean技術實現多資料庫的訪問  Java Bean是一個Java模型元件,它為使用Java類提供了一種標準的格式,在使用者程式和視覺化管理工具中可以自動獲得這種具有標準格式的類的資訊,並能夠建立和管理這些類。  基於Web的多資料庫訪問是電子商務和電子政務迅速發展而出現的一種多資料庫聯合應用的形式。在資料庫異構,作業系統異構的條件下,對於資料量很大的這種多資料庫應用問題,只有Java 技術才有能力解決。  對於在Web下的多資料庫訪問,Java的新技術是Servlet。Java Servlet是在伺服器端執行的Java程式。現在隨著Servlet API2.3版的引入,伺服器的Servlet將把Java Web軟體開發帶向更高的層次。Servlet提供了快捷、強大、靈活的開發環境。開發出來的Servlet可以在伺服器的程式空間裡執行,並能同時處理多個請求。當然,最值得稱道的是Servlet的平臺無關性。  對於基於Web的多資料庫訪問,Java Bean技術可以提供一個比較強大、靈活的解決方案。首先構造多個Java Bean,在這些模型元件裡,我們要處理資料庫的連線、定義,查詢、插入、刪除操作等方法,並要實現多執行緒,然後構造編寫呼叫Java Bean的Servlet,這樣可以實現對多資料庫的訪問。Java Bean的結構如下:   public class DatabaseConnectBean  {  定義資料庫連線的成員;  定義連線的方法{ }  ……  }  在Servlet中呼叫Java Bean的過程為: public class UsedatabaseBean extends HttpServlet{ public void doGet(httpServletRequest req,HttpServletResponse resp) throws ServletException,IOException {  …… }public void doPost(httpServletRequest req,HttpServletResponse resp) throws ServletException,IOException{ …… //建立Java Bean的物件 DatabaseConnectBean conBean=new DatabaseConnectBean(……); //使用conBean進行資料庫的操作 ……}}  從上述的過程和語句我們可以發現,使用Servlet技術可以訪問各種不同型別的資料庫,但是使用Servlet技術下的Java Bean技術要保證資料庫資料的一致性,應在Java Bean中我們可以使用Java的執行緒技術中的同步等方法來實現對資料庫的連線、操作,但這樣將加大程式設計師的程式設計實現。所以使用Servlet技術下的Java Bean能同時對多個資料庫實體的訪問,但實現起來不方便。  2)使用EJB技術實現多資料庫的訪問  EJB是Sun定義的一組標準的Java擴充套件的開發介面,稱為Enterprise Java Bean API。這些應用程式程式設計介面(API)為各種各樣的中介軟體實現了不依賴供應商的程式設計介面,Enterprise Java Bean技術把Java元件的概念從客戶機域擴充套件到了伺服器域,它使Java技術發展成為一種強健的、可伸縮的環境,能夠支援以任務為關鍵的企業資訊系統。  Enterprise Bean執行在EJB容器中。EJB容器在執行時管理Enterprise Bean的各個方面,包括遠端訪問Bean、安全性、持續、事物、並行性和資源的訪問與合用等。  EJB容器不允許客戶機應用程式直接訪問Enterprise Bean。當客戶機應用程式呼叫Enterprise Bean上的遠端方法時,容器首先攔截呼叫,以確保持續、事物和安全性都正確應用於客戶機對EJB執行的每一個操作。EJB容器的結構圖如圖1所示。    圖1 EJB容器結構示意圖  EJB元件分為3種主要型別:會話Bean(Session Bean)、實體Bean(Entity Bean)和訊息驅動Bean(Message-Driven Bean)。會話Bean實現某些在伺服器上執行的業務邏輯。會話Bean物件不在多臺客戶機之間共享。其特點是(1)它代表單個客戶機執行。(2)會話Bean包含事物處理。(3)可以使用會話Bean更新共享資料庫中的資料。(4)會話Bean的生存期就是客戶機的生存期。EJB依賴EJB容器來獲取它的需求。EJB通過容器來訪問JDBC連線,呼叫其他EJB和獲得它自身的引用或訪問特性等。EJB通過回撥方法、EJBContext和Java命名和目錄介面(JNDI)與容器互動。(5)會話Bean的資料會在EJB伺服器執行失敗時被刪除。實體Bean代表一個儲存在永續性儲存器中的實體的物件檢視。訊息驅動Bean,使得EJB容器能夠非同步地接收訊息。  對於多資料庫訪問,EJB技術可以提供一個比較強大、靈活的解決方案。首先構造多個會話Bean,在這些模型元件裡,我們要處理資料庫的連線、定義,查詢、插入、刪除操作等方法,然後建立和部署EJB,這樣可以實現對多資料庫的訪問。會話Bean的結構如下: public class DatabaseConnectSessionBean implements javax.ejb.SessionBean{ …… public int checkUserLogin(String userid,String password)  throw NameingException,SQLException {  ……  //得到初始上下文  InitialContext ic=new InitialContext();  //獲得資料來源  DataSource ds=(DataSource) ic.lookup(資料庫JDNI名字);  //建立資料庫連線  Connection conn=null;  try{    conn ds.getConnection(資料庫使用者名稱,資料庫使用者密碼);    //進行資料庫資料的操作  } }}  從上述的過程和語句我們可以發現,使用EJB技術可以訪問各種不同型別的資料庫,而且支援資料庫的“事務”的機制,這樣使對資料的處理能夠保證資料的一致性。所以使用EJB技術能實現對多個資料庫的訪問,而且安全性、持續、事物、並行性和資源的管理由容器來管理,這樣使程式設計具有簡單性。  結束語  EJB技術是解決異構資料庫環境下的多資料庫資訊處理一種有效的方法。它不但可以解決資料庫異構的問題,更是解決作業系統異構的最有效的方法。這樣可以達到不同資訊資源的共享及資訊的綜合統計查詢,這也是企事業單位迫切要解決的實際問題。我們認為EJB技術能更好的解決異構資料庫環境下的電子商務和電子政務方面的資訊交換問題。    查閱關於 Java EJB 的全部文件    摘 要 本文討論的是在多種異構資料庫下,如何進行多資料庫的訪問,並分析了使用Java技術下的各種方法進行多種異構資料庫下的資料交換。  關鍵詞 異構資料庫;EJB;Servlet  引言  現在的各種資料庫應用,由於技術、歷史等因素,往往在一個大的部門中並存有多個應用系統。這些應用系統可能分散於不同的網路節點、基於不同的操作平臺、使用不同的資料庫管理系統,且各子系統封閉執行,自成一體,這樣給不同部門的資訊資源共享帶來困難。如何在不改變原來系統的內部資訊的前提下,完成不同資料庫系統間的資料訪問和交換是值得研究的問題。  多資料庫系統的Java解決方案  多資料庫系統的構成有多種方式,在這些方式中,我們考察這些多資料庫的不同點,其主要表現在以下幾個方面的異構:  (1)資料庫邏輯資料模型的異構:有層次、網狀、關係、物件-關係和物件五種資料庫。  (2)資料庫物理資料模型的異構:物理資料模型反映資料庫儲存結構,例如物理塊、指標、索引等,即使邏輯資料模型相同,如關聯式資料庫的ORACLE、SYBASE、DB2等,其物理資料模型也存在差異。  (3)作業系統的異構:UNIX、WINDOWS系列、MacOS、OS/2、DOS等。  (4)計算機平臺的異構:從巨、大、中、小型機到工作站,微機以及手持機。  (5)網路的異構:LAN、WAN、以太匯流排結構與令牌環結構等。  在這些異構中,有些是資料庫歷史所造成的,如層次、網狀型別的資料庫;有些是不同的資料庫開發商開發的不同的資料庫管理系統造成的;有些是計算機作業系統的不同;而有些是網路結構和計算機平臺的原因。對於這些不同,從目前來看,我們認為當前應該著重解決的在關係模式下的不同的作業系統和不同資料庫管理系統。  眾所周知,Java技術是全新的程式設計技術,它具有平臺無關性、物件導向、安全、高效能、分散式,多執行緒等特點,使Java成為當前最為型別的程式語言和平臺。對於多資料庫系統聯合訪問和資料交換,使用Java技術可以解決不同的作業系統和不同的資料庫管理系統之間的資料處理。  1)使用Java Bean技術實現多資料庫的訪問  Java Bean是一個Java模型元件,它為使用Java類提供了一種標準的格式,在使用者程式和視覺化管理工具中可以自動獲得這種具有標準格式的類的資訊,並能夠建立和管理這些類。  基於Web的多資料庫訪問是電子商務和電子政務迅速發展而出現的一種多資料庫聯合應用的形式。在資料庫異構,作業系統異構的條件下,對於資料量很大的這種多資料庫應用問題,只有Java 技術才有能力解決。  對於在Web下的多資料庫訪問,Java的新技術是Servlet。Java Servlet是在伺服器端執行的Java程式。現在隨著Servlet API2.3版的引入,伺服器的Servlet將把Java Web軟體開發帶向更高的層次。Servlet提供了快捷、強大、靈活的開發環境。開發出來的Servlet可以在伺服器的程式空間裡執行,並能同時處理多個請求。當然,最值得稱道的是Servlet的平臺無關性。  對於基於Web的多資料庫訪問,Java Bean技術可以提供一個比較強大、靈活的解決方案。首先構造多個Java Bean,在這些模型元件裡,我們要處理資料庫的連線、定義,查詢、插入、刪除操作等方法,並要實現多執行緒,然後構造編寫呼叫Java Bean的Servlet,這樣可以實現對多資料庫的訪問。Java Bean的結構如下:   public class DatabaseConnectBean  {  定義資料庫連線的成員;  定義連線的方法{ }  ……  }  在Servlet中呼叫Java Bean的過程為: public class UsedatabaseBean extends HttpServlet{ public void doGet(httpServletRequest req,HttpServletResponse resp) throws ServletException,IOException {  …… }public void doPost(httpServletRequest req,HttpServletResponse resp) throws ServletException,IOException{ …… //建立Java Bean的物件 DatabaseConnectBean conBean=new DatabaseConnectBean(……); //使用conBean進行資料庫的操作 ……}}  從上述的過程和語句我們可以發現,使用Servlet技術可以訪問各種不同型別的資料庫,但是使用Servlet技術下的Java Bean技術要保證資料庫資料的一致性,應在Java Bean中我們可以使用Java的執行緒技術中的同步等方法來實現對資料庫的連線、操作,但這樣將加大程式設計師的程式設計實現。所以使用Servlet技術下的Java Bean能同時對多個資料庫實體的訪問,但實現起來不方便。  2)使用EJB技術實現多資料庫的訪問  EJB是Sun定義的一組標準的Java擴充套件的開發介面,稱為Enterprise Java Bean API。這些應用程式程式設計介面(API)為各種各樣的中介軟體實現了不依賴供應商的程式設計介面,Enterprise Java Bean技術把Java元件的概念從客戶機域擴充套件到了伺服器域,它使Java技術發展成為一種強健的、可伸縮的環境,能夠支援以任務為關鍵的企業資訊系統。  Enterprise Bean執行在EJB容器中。EJB容器在執行時管理Enterprise Bean的各個方面,包括遠端訪問Bean、安全性、持續、事物、並行性和資源的訪問與合用等。  EJB容器不允許客戶機應用程式直接訪問Enterprise Bean。當客戶機應用程式呼叫Enterprise Bean上的遠端方法時,容器首先攔截呼叫,以確保持續、事物和安全性都正確應用於客戶機對EJB執行的每一個操作。EJB容器的結構圖如圖1所示。    圖1 EJB容器結構示意圖  EJB元件分為3種主要型別:會話Bean(Session Bean)、實體Bean(Entity Bean)和訊息驅動Bean(Message-Driven Bean)。會話Bean實現某些在伺服器上執行的業務邏輯。會話Bean物件不在多臺客戶機之間共享。其特點是(1)它代表單個客戶機執行。(2)會話Bean包含事物處理。(3)可以使用會話Bean更新共享資料庫中的資料。(4)會話Bean的生存期就是客戶機的生存期。EJB依賴EJB容器來獲取它的需求。EJB通過容器來訪問JDBC連線,呼叫其他EJB和獲得它自身的引用或訪問特性等。EJB通過回撥方法、EJBContext和Java命名和目錄介面(JNDI)與容器互動。(5)會話Bean的資料會在EJB伺服器執行失敗時被刪除。實體Bean代表一個儲存在永續性儲存器中的實體的物件檢視。訊息驅動Bean,使得EJB容器能夠非同步地接收訊息。  對於多資料庫訪問,EJB技術可以提供一個比較強大、靈活的解決方案。首先構造多個會話Bean,在這些模型元件裡,我們要處理資料庫的連線、定義,查詢、插入、刪除操作等方法,然後建立和部署EJB,這樣可以實現對多資料庫的訪問。會話Bean的結構如下: public class DatabaseConnectSessionBean implements javax.ejb.SessionBean{ …… public int checkUserLogin(String userid,String password)  throw NameingException,SQLException {  ……  //得到初始上下文  InitialContext ic=new InitialContext();  //獲得資料來源  DataSource ds=(DataSource) ic.lookup(資料庫JDNI名字);  //建立資料庫連線  Connection conn=null;  try{    conn ds.getConnection(資料庫使用者名稱,資料庫使用者密碼);    //進行資料庫資料的操作  } }}  從上述的過程和語句我們可以發現,使用EJB技術可以訪問各種不同型別的資料庫,而且支援資料庫的“事務”的機制,這樣使對資料的處理能夠保證資料的一致性。所以使用EJB技術能實現對多個資料庫的訪問,而且安全性、持續、事物、並行性和資源的管理由容器來管理,這樣使程式設計具有簡單性。  結束語  EJB技術是解決異構資料庫環境下的多資料庫資訊處理一種有效的方法。它不但可以解決資料庫異構的問題,更是解決作業系統異構的最有效的方法。這樣可以達到不同資訊資源的共享及資訊的綜合統計查詢,這也是企事業單位迫切要解決的實際問題。我們認為EJB技術能更好的解決異構資料庫環境下的電子商務和電子政務方面的資訊交換問題。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31495967/viewspace-2893166/,如需轉載,請註明出處,否則將追究法律責任。

相關文章