熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

一個關於如何解決復雜編碼的挑戰問題

2013-11-13 22:17:02  來源: Oracle 

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

From:http://tw.wingwit.com/Article/program/Oracle/201311/18688.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.