示例代碼展示了多種解決互聯網應用程序開發的方法
開發互聯網應用程序是非常復雜的
你不僅要實現定義應用程序的行為和邏輯
還必須在分布式環境下將多種產品
技術層次和標准結合在一起
例如
考慮一個幾乎任何希望進行在線銷售的Web站點(PayPal等類似的)都必須實現的特性
信用卡校驗
主要包括如何驗證用戶
聯系驗證公司並安全地進行交易處理
所有這些都將一個基於Web的瘦客戶端
一個數據庫
一個應用服務器和獨立驗證公司提供的功能之間的交互很好地結合起來
OTN提供了示例應用程序
使用不同的產品
技術和標准組合來解決這樣復雜的問題
一些示例采用了它們自己的驗證機制
另一些則利用了內置到Oracle
i應用服務器(Oracle
iAS)中的單一登錄(Single Sign
On
SSO)特性
OTN還提供了一個利用了Oracle
i數據庫的XML DB特性的後端應用程序示例
Web服務這一技術被用於每個信用卡示例應用中
通過使用Web服務
OTN開發人員可以有效地將需要的功能內置到分立的組件中
這種方法實現了應用程序的模塊化而不是整體化
因此更加靈活且更易於維護
開發人員可以在不影響主應用程序的情況下改變組件的實施
或者只需修改幾行代碼就可以使用不同的組件
因此
Web服務可以在應用程序之間被共享和重復使用
並且在時機成熟時可以輕松地被移植到企業級網格計算環境
OTN會員可以下載以下示例代碼(和OTN上任何其他示例代碼)
研究它們
根據自己的開發需求混合和搭配使用這些解決方案
使用JEE設計模式的VSM 虛擬購物商場(Virtual Shopping Mall
VSM)示例應用程序使廠商能夠建立在線商店
客戶可以浏覽所有商店
系統管理員則可以批准和拒絕新商店的申請並維護商店類別列表
為了構建VSM
OTN開發人員實現了幾個有名的J
EE設計模式
包括Session Fa?ade和模型
視圖
控制器(Model
View
Controller
MVC)
VSM指南系列的一個模塊描述了OTN開發人員如何通過Web服務重復使用一個軟件組件
VSM的信用卡服務組件通過三個Java文件來實現
一個定義了該組件方法的接口(CCServices)
一個實現了該接口的類(CCServicesImpl)
以及另一個負責處理信用卡校驗失敗時拋出的異常的類(CCException)
關鍵操作
校驗信用卡號由方法CCServicesImpl
validateCard來執行
該方法使用了LUHN算法(也被稱為模
算法)
銀行
企業和其他實體現在在公共領域中廣泛采用了這一規則來生成和校驗信用卡
賬戶和身份證號碼
使用框架的VSM BC
J
VSM示例應用程序提供與VSM相同的功能性
但它是使用用於構建組件和基於組件的應用程序的Oracle框架Oracle
i JDeveloper Business Components for Java (BC
J)來實現的
BC
J提供了現成的J
EE設計模式的實施
否則你將需要手工編寫代碼
在BC
J
VSM中
信用卡服務組件通過多個文件實現
然而
OTN開發人員只需創建並填寫一個表並為一個Java類編寫一個方法
JDeveloper就可以生成所有需要的東西
表CC_MASTER是通過腳本webstore
sql創建和填寫的
如下所示
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)生成代碼
關鍵操作
校驗信用卡號由方法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
iAS利用基於Apache的Oracle HTTP 服務器
Oracle
iAS Containers for J
EE(OC
J)和Oracle
iAS 門戶為構建和部署Web應用程序提供了一個堅實的框架
這些產品都使用了由Oracle
iAS基礎架構提供的高級安全功能性
(Oracle
iAS基礎架構包括Oracle
iAS 元數據信息庫
Oracle 互聯網目錄
Oracle
iAS SSO和Oracle 管理服務器
)
通過提供正確的用戶名和密碼
在線產品商店的用戶可以查看產品目錄
並向購物車中添加產品
在為購買的產品付賬時
用戶應輸入信用卡號
應用程序就會通過SSL與信用卡Web服務建立聯系
從而說明如何安全地訪問一個Web服務
在線產品商店和單一登錄 為了闡明另一種方法
一個獨立的在線商店模擬使用了Oracle
iAS SSO來驗證用戶
SSO使用戶只需注冊一次就可以登錄到Oracle
iAS及其他Web應用程序
這個示例應用程序使用數字證書來注冊到通過JAZN被置於Oracle
Ias 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
i XML DB (在Oracle
i數據庫第
版及更高版本中提供)的特性來模擬信用卡公司在互聯網上提供的一些後端功能
這個應用程序在XMLType表中以XML文檔的方式管理客戶簡檔
賬戶余額和信用卡持有者及商家的其他數據
通過模擬實際商店中的信用卡采購而生成購買請求
對於每次購買
經銷商都會使用一個客戶端應用程序來提交具體數據
包括信用卡號和金額以及商家的賬號
客戶端調用Web服務
由Web服務根據信用卡持有者的賬號對請求進行校驗並返回結果
Web服務是部署到OC
J上的用Java編寫的無狀態
遠程過程調用形式的Web服務
客戶端Java類通過JSP接收輸入數據並調用Web服務的方法
然後
Web服務調用一個PL/SQL過程來校驗請求
並將來自PL/SQL過程的結果回復給客戶端
該應用程序將合法的交易存儲在事務處理表CPG_TRANSACTIONS中
From:http://tw.wingwit.com/Article/program/Oracle/201311/18688.html