文章詳情頁
利用Oracle9i XML DB 來解決復雜編碼問題
瀏覽:32日期:2023-11-26 08:53:28
開發互聯網應用程序是非常復雜的:你不僅要實現定義應用程序的行為和邏輯,還必須在分布式環境下將多種產品、技術層次和標準結合在一起。示例代碼展示了多種解決互聯網應用程序開發的方法。 例如,考慮一個幾乎任何希望進行在線銷售的Web站點(PayPal等類似的)都必須實現的特性:信用卡校驗。主要包括如何驗證用戶、聯系驗證公司并安全地進行交易處理--所有這些都將一個基于Web的瘦客戶端、一個數據庫、一個應用服務器和獨立驗證公司提供的功能之間的交互很好地結合起來。 OTN提供了示例應用程序,使用不同的產品、技術和標準組合來解決這樣復雜的問題。一些示例采用了它們自己的驗證機制;另一些則利用了內置到Oracle 9i應用服務器(Oracle 9iAS)中的單一登錄(Single Sign-On , SSO)特性。OTN還提供了一個利用了Oracle 9i數據庫的XML DB特性的后端應用程序示例。 Web服務這一技術被用于每個信用卡示例應用中。通過使用Web服務,OTN開發人員可以有效地將需要的功能內置到分立的組件中。這種方法實現了應用程序的模塊化而不是整體化,因此更加靈活且更易于維護。開發人員可以在不影響主應用程序的情況下改變組件的實施,或者只需修改幾行代碼就可以使用不同的組件。因此,Web服務可以在應用程序之間被共享和重復使用,并且在時機成熟時可以輕松地被移植到企業級網格計算環境。 OTN會員可以下載以下示例代碼(和OTN上任何其他示例代碼),研究它們,根據自己的開發需求混合和搭配使用這些解決方案。 使用J2EE設計模式的VSM 虛擬購物商場(Virtual Shopping Mall,VSM)示例應用程序使廠商能夠建立在線商店,客戶可以瀏覽所有商店,系統治理員則可以批準和拒絕新商店的申請并維護商店類別列表。為了構建VSM,OTN開發人員實現了幾個有名的J2EE設計模式,包括Session Fa?ade和模型-視圖-控制器(Model-View-Controller, MVC)。 VSM指南系列的一個模塊描述了OTN開發人員如何通過Web服務重復使用一個軟件組件。VSM的信用卡服務組件通過三個Java文件來實現:一個定義了該組件方法的接口(CCServices),一個實現了該接口的類(CCServicesImpl),以及另一個負責處理信用卡校驗失敗時拋出的異常的類(CCException)。要害操作--校驗信用卡號由方法CCServicesImpl.validateCard來執行,該方法使用了LUHN算法(也被稱為模10算法)。銀行、企業和其他實體現在在公共領域中廣泛采用了這一規則來生成和校驗信用卡、賬戶和身份證號碼。 使用框架的VSM BC4J-VSM示例應用程序提供與VSM相同的功能性,但它是使用用于構建組件和基于組件的應用程序的Oracle框架Oracle 9i JDeveloper Business Components for Java (BC4J)來實現的。BC4J提供了現成的J2EE設計模式的實施,否則你將需要手工編寫代碼。在BC4J-VSM中,信用卡服務組件通過多個文件實現。然而,OTN開發人員只需創建并填寫一個表并為一個Java類編寫一個方法,JDeveloper就可以生成所有需要的東西。 表CC_MASTER是通過腳本webstore.sql創建和填寫的,如下所示: CREATE TABLE cc_master ( provider VARCHAR2(10), ccstart NUMBER(5));INSERT INTO cc_master VALUES('VISA',11111);INSERT INTO cc_master VALUES('MASTER',22222);INSERT INTO cc_master VALUES('DINERS',33333);INSERT INTO cc_master VALUES('AMEX',44444);接下來,OTN開發人員使用JDeveloper向導來創建一個基于CC_MASTER表的實體對象(CcMaster)。這些向導還為相應的視圖對象(CreditCardValidationView)和視圖對象實現(CreditCardValidationViewImpl)生成代碼。 要害操作--校驗信用卡號由方法CreditCardValidationViewImpl.validateCard來執行。在這個示例應用程序中,并不是像在商業應用程序中那樣對信用卡號進行校驗。然而,校驗代碼卻保證了用戶輸入數字的正確位數等。 在線產品商店和Web服務安全性 在線產品商店(Online ProdUCt Store)是另一個示例應用程序,它顯示了如何確保Web服務的安全。有兩個方法可以實現這個目標: XML級別的安全性: 選項包括XML加密、XML數字簽名API、XKMS(XML密匙治理規范)和SAML(安全性聲明標記語言,Security Assertion Markup Language)。 傳輸級別的安全性:通過確保Web服務通信所使用的網絡協議的安全來實現。SSL是業界認可的通過TCP/IP進行安全加密通信的標準協議。在這個模型中,Web服務客戶端使用SSL來打開一個到Web服務的安全套接口。然后,客戶端在這個安全套接口上通過HTTPS發送和接收SOAP消息。SSL實現通過對套接口上所有的網絡通信進行加密而確保了私密性。SSL還可以利用PKI基礎架構來驗證提供給客戶端的Web服務。 因為在XML級別實現安全性的標準仍然在制定當中,所以OTN開發人員選擇使用SSL和PKI基礎架構在傳輸級別實現安全性。Oracle 9iAS利用基于Apache的Oracle HTTP 服務器、Oracle 9iAS Containers for J2EE(OC4J)和Oracle 9iAS 門戶為構建和部署Web應用程序提供了一個堅實的框架。這些產品都使用了由Oracle 9iAS基礎架構提供的高級安全功能性。 (Oracle 9iAS基礎架構包括Oracle 9iAS 元數據信息庫、Oracle 互聯網目錄、Oracle 9iAS SSO和Oracle 治理服務器。) 通過提供正確的用戶名和密碼,在線產品商店的用戶可以查看產品目錄,并向購物車中添加產品。在為購買的產品付賬時,用戶應輸入信用卡號,應用程序就會通過SSL與信用卡Web服務建立聯系,從而說明如何安全地訪問一個Web服務。 在線產品商店和單一登錄 為了闡明另一種方法,一個獨立的在線商店模擬使用了Oracle 9iAS SSO來驗證用戶。SSO使用戶只需注冊一次就可以登錄到Oracle 9iAS及其他Web應用程序。這個示例應用程序使用數字證書來注冊到通過JAZN被置于Oracle 9ias SSO服務器的保護之下的Web應用程序。JAZN是Oracle對Java驗證和授權服務(Java Authentication and Authorization Service ,JAAS)的實現,JAAS則是使服務能夠對用戶進行驗證并授權他們使用應用程序資源的Java包。 SSO服務器使用一個加密的SSL通道為客戶端Web瀏覽器提供一個cookie,應用程序可以使用這個cookie對用戶進行驗證,而無需用戶登錄。一旦用戶通過了驗證,授權過程就會啟動,為用戶授予訪問特權資源的權限,如在數據庫中插入行或對文件進行寫操作。 這個示例提供了一個要求用戶登錄到在線辦公用品商店的Web應用程序。訪問該應用程序主頁URL的用戶被重定向到SSO服務器,由JAAS進行驗證。這個示例使用數字證書對用戶進行驗證,用戶無需提供用戶名和密碼就可以登錄。 成功登錄后,用戶可以購買產品并通過信用卡支付。這個示例使用一個信用卡Web服務來校驗用戶的信用卡號。它還確認用戶擁有足夠的資金額來購買產品。Web客戶端通過SSL通道與Web服務通信,并使用數字證書來驗證Web服務。 使用XML DB的信用卡支付網關 信用卡支付網關示例應用程序使用了Oracle 9i XML DB (在Oracle 9i數據庫第2版及更高版本中提供)的特性來模擬信用卡公司在互聯網上提供的一些后端功能。這個應用程序在XMLType表中以XML文檔的方式治理客戶簡檔、賬戶余額和信用卡持有者及商家的其他數據,通過模擬實際商店中的信用卡采購而生成購買請求。 對于每次購買,經銷商都會使用一個客戶端應用程序來提交具體數據,包括信用卡號和金額以及商家的賬號??蛻舳苏{用Web服務,由Web服務根據信用卡持有者的賬號對請求進行校驗并返回結果。 Web服務是部署到OC4J上的用Java編寫的無狀態、遠程過程調用形式的Web服務??蛻舳薐ava類通過jsp接收輸入數據并調用Web服務的方法。然后,Web服務調用一個PL/SQL過程來校驗請求,并將來自PL/SQL過程的結果回復給客戶端。該應用程序將合法的交易存儲在事務處理表CPG_TRANSACTIONS中。
排行榜