影音先锋熟女少妇av资源,国产精品52页,2021精品国产自在现线看,亚洲高清中文字幕在线

物聯(lián)傳媒 旗下網(wǎng)站
登錄 注冊

跨數(shù)據(jù)庫中間件在ERP中的應用

作者:劉一Liu Yi,李玲Li Lin
來源:RFID世界網(wǎng)
日期:2011-01-04 09:41:46
摘要:網(wǎng)絡數(shù)據(jù)庫是動態(tài)網(wǎng)站源泉 為保證網(wǎng)絡數(shù)據(jù)庫安全,一般采用含有中間件的三層結(jié)構(gòu)訪問數(shù)據(jù)庫。文中采用C/M/S結(jié)構(gòu).實現(xiàn)了一個跨數(shù)據(jù)庫中間件在ERP中的應用。利用l2EE技術(shù)開發(fā)中間件,詳細闡述了在數(shù)據(jù)庫連接、查詢等方面的開發(fā)設計。

  引言
 
  世界由傳統(tǒng)型經(jīng)濟向知識型經(jīng)濟和網(wǎng)絡型經(jīng)濟發(fā)展,信息化已成為大趨勢 ERP(Enterprise Resource Planning,企業(yè)資源計劃)在企業(yè)信息化中發(fā)揮了巨大作用。而隨著企業(yè)規(guī)模、結(jié)構(gòu)變化,各種兼并或進入新業(yè)務領域,會遇到企業(yè)各部分分布異構(gòu)情況,在這種環(huán)境中,通常存在多種硬件系統(tǒng)平臺、系統(tǒng)軟件、數(shù)據(jù)庫及多種風格各異的用戶界面,這就要求傳統(tǒng)的ERP軟件轉(zhuǎn)型以適應需要,但它們的應用和商業(yè)邏輯一般都是緊耦合的,改造難度很大。因此,為了實現(xiàn)內(nèi)部邏輯與外部實現(xiàn)的松耦合結(jié)構(gòu),中間件技術(shù)的引入就十分必要,在跨數(shù)據(jù)庫的中間件應用技術(shù)上,提出數(shù)據(jù)訪問中間件的三層C/M/S fClient/Middleware/Server)體系結(jié)構(gòu)。瀏覽器端程序要訪問數(shù)據(jù)庫,首先通過中間件。

  然后由中間件對數(shù)據(jù)庫操作 該中間件位于服務器端,中間件對數(shù)據(jù)庫進行操作后,再將處理結(jié)果通過Web服務器返回到瀏覽器端用戶 通過中間件,客戶端應用程序開發(fā)工作量大大減輕 因為中間件可重復利用,只要掌握了中間件編程接口,就可以很容易利用中間件來訪問數(shù)據(jù)庫,或運行在網(wǎng)絡上的其它大型應用程序。

  本文介紹利用J2EE技術(shù)實現(xiàn)中間件跨數(shù)據(jù)庫訪問的幾點應用。

  1 中間件技術(shù)

  1,1中間件的概念


  中間件(middleware)是一種獨立的系統(tǒng)軟件或服務程序,分布式應用軟件借助這種軟件在不同的技術(shù)之間共享資源, 中間件位于客戶機服務器的操作系統(tǒng)之上,管理計算資源和網(wǎng)絡通信。中間件處于操作系統(tǒng)軟件和應用軟件之間。中間件在操作系統(tǒng)、網(wǎng)絡和數(shù)據(jù)庫之上,應用軟件的下層,主要作用就是為處于自己上層的應用軟件提供運行與開發(fā)的環(huán)境,幫助開發(fā)者靈活、高效地開發(fā)和集成復雜的應用軟件嘲

  1,2中間件的分類

  中間件大致可分為六大類:終端仿真/屏幕轉(zhuǎn)換中間件、數(shù)據(jù)訪問中間件、遠程過程調(diào)用中間件、消息中間件、交易中間件、對象中間件。由于中間件要屏蔽各類應用軟件和網(wǎng)絡協(xié)議與操作系統(tǒng)之間的異構(gòu)問題,所以它必須能夠提供分布系統(tǒng)環(huán)境下的通信服務,在這里,將這種通信服務稱為平臺。基于功能和實現(xiàn)機制的不同,平臺分為以下幾類:① 遠程過程調(diào)用中間件(Remo~ Procedure Cal1); ② 面向消息的中間件(Message Oriented Middleware);③面向?qū)ο笳埱蟠碇虚g件(Object Request Brokers);④ 事務處理監(jiān)控(Transaetion Processing Monitors)。

  1,3中間件的特點

  中間件屏蔽了底層操作系統(tǒng)復雜性,減少了程序設計復雜性,使程序開發(fā)人員面對簡單而統(tǒng)一的開發(fā)環(huán)境,將注意力集中在自己業(yè)務上,不必再為程序在不同系統(tǒng)軟件上移植而重復工作,減少了技術(shù)上的負擔。中間件帶給應用系統(tǒng)的不只是開發(fā)簡單、開發(fā)周期縮短,也減少了系統(tǒng)維護、運行和管理工作量及計算機總體費用投入。隨著研究深入和應用普及,已形成了中間件標準化規(guī)范或產(chǎn)品。如CORBA、DCOM、J2EE都成為著名的業(yè)界標準規(guī)范 其中美國Sun公司的J2EE規(guī)范,目標是提供與平臺無關、可移植、支持并發(fā)訪問和安全的,完全基于Java的開發(fā)服務器端中間件的標準。它具有完整的基于Java語言開發(fā)、面向企業(yè)發(fā)布的應用規(guī)范, 包括Javaservlet、JSP(JavaServerPage)、EJB等多種形式,以支持不同業(yè)務需求

  2 采用J2EE進行C/M/S結(jié)構(gòu)設計和跨數(shù)據(jù)庫訪問

  2,1基于J2EE的C/M/S體系結(jié)構(gòu)


  J2EE(Java 2 Platform,Enterprise Edition)是Sun公司推出的一種全新的概念模型,與傳統(tǒng)互聯(lián)網(wǎng)應用程序模型相比具有不可比擬的優(yōu)勢 J2EE是一種利用Java2平臺簡化諸多與多級企業(yè)解決方案的開發(fā)、部署和管理相關的復雜問題的體系結(jié)構(gòu) J2EE技術(shù)的基礎是核心Java平臺或Java2平臺標準版,不僅鞏固了標準版中許多優(yōu)點,例如“一次編寫,到處運行”(Write once,l'un anywhere)的特性、方便存取數(shù)據(jù)庫的JDBC,CORBA技術(shù)以及能夠在[nternet應用中保護數(shù)據(jù)的安全模式等,同時還提供EJB (Enterprise Java Beans),Servlet。JSP(JavaServerPages)以及XML等技術(shù)的全面支持。J2EE體系結(jié)構(gòu)如圖1所示


圖1 J2EE的體系結(jié)構(gòu)

  J2EE是一種全新概念的多層分布式應用平臺,通過提供企業(yè)計算環(huán)境所必須的各種服務,使部署在J2EE平臺上的C/M/S三層體系結(jié)構(gòu)實現(xiàn)高可用性、安全性、可擴展性和可靠性。C/M/S體系結(jié)構(gòu)的優(yōu)劣會直接制約整個企業(yè)信息共享、運行管理以及經(jīng)營決策:必須要滿足3個目標:

  (1)系統(tǒng)必須具有高可擴展性,可維護性。由于企業(yè)經(jīng)營中不確定因素很多,經(jīng)常導致新的功能需求不斷變化。這就要求系統(tǒng)具有很高可擴展性,以滿足新功能添加。

  (2) 實現(xiàn)企業(yè)管理的3A (Anyone,Anywhere,Anyway)。即可以通過本系統(tǒng)的使用達到任何人在任何地方以任何方式了解和參與企業(yè)運營管理。

  (3)最大范圍內(nèi)節(jié)約系統(tǒng)的開發(fā)成本。企業(yè)的最終目的是以最小的成本獲得最多的投資回報。因此,系統(tǒng)開發(fā)成本直接影響著企業(yè)的利潤。
 
  2,2基于J2EE的跨數(shù)據(jù)庫訪問體系結(jié)構(gòu)設計

  應用軟件進行跨數(shù)據(jù)庫開發(fā)或移植困難,主要是由數(shù)據(jù)庫異構(gòu)性引起的數(shù)據(jù)庫操作語言不一致所造成。應用軟件數(shù)據(jù)操作語言都是針對特定的數(shù)據(jù)庫,直接調(diào)用相關的JDBC程序來完成數(shù)據(jù)庫操作,無法使用統(tǒng)一的數(shù)據(jù)操作語言來操縱多種異構(gòu)數(shù)據(jù)庫,造成應用軟件在異構(gòu)數(shù)據(jù)庫間移植困難 本文主要研究屏蔽異構(gòu)數(shù)據(jù)庫操作語言差異的中間件JUBD (Java UniverseData Base Manage system),實現(xiàn)應用軟件進行跨數(shù)據(jù)庫移植,在異構(gòu)數(shù)據(jù)庫之間進行數(shù)據(jù)快速轉(zhuǎn)換。JUBD是在JDBC與應用程序之間的一層,它屏蔽異構(gòu)數(shù)據(jù)庫不同的JDBC之間的差異,應用程序只需使用標準數(shù)據(jù)庫操作語言,JUDB就可以將其轉(zhuǎn)換為針對不同數(shù)據(jù)庫的SQL操作語言,樣開發(fā)人員只需了解標準的SQL語言,而不需要記住各數(shù)據(jù)庫操作語言的特性系統(tǒng)采用三層結(jié)構(gòu),劃分為:表示層(客戶機)、業(yè)務邏輯層(應用服務器)、數(shù)據(jù)存儲層(數(shù)據(jù)庫服務器)。

  在方案中,用戶發(fā)出標準化的SQL語言進行跨數(shù)據(jù)庫操作 通過解析測試器完成對SQL字符串解析及查找錯誤的操作,進而得到一個語句對象。該語句對象由管理器進一步轉(zhuǎn)換,將語句對象中的屬性值提取重新組合成SQL語句,使原本符合標準SQL操作語言的字符串,轉(zhuǎn)變成可以為實際關系型數(shù)據(jù)庫系統(tǒng)處理的數(shù)據(jù)結(jié)構(gòu),再通過數(shù)據(jù)庫連接池獲得相應數(shù)據(jù)庫系統(tǒng)的JDBC接13,執(zhí)行重組后的SQL語句并返回執(zhí)行結(jié)果。

  為了保證可靠安全地傳輸數(shù)據(jù),在每個數(shù)據(jù)庫服務器上創(chuàng)建一個信息處理隊列管理器,承擔信息收發(fā)實際工作:另外,在其中任一臺應用服務器上再添加一個額外的路由隊列管理器作為信息路由點,避免路由點的單點故障:在另外一臺應用服務器上也創(chuàng)建一個路由隊列管理器備份,確保路由點不會出現(xiàn)單點故障,當其發(fā)生意外故障時,由另一臺應用服務器上的路由隊列管理器實現(xiàn)自動接管和切換:結(jié)構(gòu)如圖2所示


圖2 中間件部署方式

  3 跨數(shù)據(jù)庫訪問的實現(xiàn)

  通常在程序中用到的SOL語言基本都是對數(shù)據(jù)庫的增刪改操作, 還有CREATE TABLE、DROP TABLE、ALTER TABLE操作。應用程序通過JUDB提供的一組對外接El執(zhí)行SQL語句。

  DBPEER是JUDB提供的一個專門對外的接口模塊,其功能主要是實現(xiàn)數(shù)據(jù)庫操作。它通過一個類的靜態(tài)模塊來初始化系統(tǒng)配置(JUOBKERNEL,INIT),并獲得各項配置信息 DBPEER提供四種SQL語句接13,應用軟件通過這四種接13操作數(shù)據(jù)源 同時,DBPEER也開放直接與JDBC通訊的接口,用戶可以通過這些接口將一些目前JUBD還未支持的SQL語句提交給JDBC,由數(shù)據(jù)庫系統(tǒng)直接處理。方法如下:

  (1)executeDelete(String deleteSQL),exeeuteDelete(String deleteSQL,String dbname)函數(shù)功能:為刪除記錄,這兩個方法是為在指定或缺省的數(shù)據(jù)源執(zhí)行“Delete"語句,人口參數(shù)為執(zhí)行delete語句的標準SQL語句,例如“delete from table where col==value”,還有重載方法的參數(shù)為數(shù)據(jù)庫名。例如“Orae1e” 若是沒有指定數(shù)據(jù)庫名,系統(tǒng)會根據(jù)配置文件來自動獲得

  (2)executelnsert (String insertSQL),executelnse(String insertSQL,String dbname)函數(shù)功能:在指定或缺省的數(shù)據(jù)源執(zhí)行一條插入語句,并且如果所操作表為自增主鍵表,則返回新增記錄的主鍵值

  (3)excuteSelect (String selectSQL),executeSelect(String selectSQL,String dbname)函數(shù)功能:在指定或缺省的數(shù)據(jù)源執(zhí)行一條查詢語句,同時返回結(jié)果集

  (4)exeeuteUpdate(String updateSQL),executeUpdate(String updateSQL,Stringdbname)i~i數(shù)功能:在指定或缺省數(shù)據(jù)源執(zhí)行一條更新語句。

  (5)executeQuery(String queryString),executeQuery(String queryString,Stringdbname)函數(shù)功能:在指定或缺省的數(shù)據(jù)源,執(zhí)行一條非LSQL標準的查詢語句。

  (6)executeStatement(String stmt),executeStatement(String stmt,Stringdbname)函數(shù)功能:在指定或缺省的數(shù)據(jù)源,執(zhí)行一條非LSQL標準的插入、刪除、更新語句。

  (7)executeCreate(String createSQL),Public static boolean executeCreate (String createSQL, String dbname)函數(shù)功能:在指定或缺省的數(shù)據(jù)源,執(zhí)行一條創(chuàng)建表語句。

  (8)executeDrop (String dropSQL),executeDrop(String dropSQL,String dbname)函數(shù)功能:在指定或缺省的數(shù)據(jù)源,執(zhí)行一條表刪除語句應用軟件可以調(diào)用以上方法來操作異構(gòu)數(shù)據(jù)庫DBPEER提供所有SQL語言轉(zhuǎn)換功能 當一個外部應用調(diào)用JUDB的DBPEER中的方法時,無需考慮數(shù)據(jù)庫特性,只需應用標準LSQL語言:且DBPEER對外提供非常豐富的函數(shù),可執(zhí)行各種SQL操作

  4 結(jié)束語

  中間件發(fā)展日趨成熟,為計算機網(wǎng)絡發(fā)展注入了新鮮血液 中間件簡化了應用程序開發(fā)難度,提高了軟件開發(fā)可重復性,節(jié)省資源配置,解決了大部分操作系統(tǒng)與應用軟件之間異構(gòu)問題,使分布式結(jié)構(gòu)體系得到推廣和發(fā)展 本文從運用中間件建立三層體系結(jié)構(gòu)著手,介紹了中間件和三層體系結(jié)構(gòu)特點,提出了在跨數(shù)據(jù)庫系統(tǒng)中的應用方式。同時,設計了一個基于J2EE的解決異構(gòu)數(shù)據(jù)庫互操作問題的中間件方案,具有很強靈活性,并有很高的可擴展性和可重用性。