国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > 綜合 > 正文

幾種解決互聯(lián)網(wǎng)應(yīng)用程序開(kāi)發(fā)的好方法

2024-07-21 02:42:20
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
開(kāi)發(fā)互聯(lián)網(wǎng)應(yīng)用程序是非常復(fù)雜的:你不僅要實(shí)現(xiàn)定義應(yīng)用程序的行為和邏輯,還必須在分布式環(huán)境下將多種產(chǎn)品、技術(shù)層次和標(biāo)準(zhǔn)結(jié)合在一起。示例代碼展示了多種解決互聯(lián)網(wǎng)應(yīng)用程序開(kāi)發(fā)的方法。

例如,考慮一個(gè)幾乎任何希望進(jìn)行在線銷(xiāo)售的Web站點(diǎn)(PayPal等類(lèi)似的)都必須實(shí)現(xiàn)的特性:信用卡校驗(yàn)。主要包括如何驗(yàn)證用戶、聯(lián)系驗(yàn)證公司并安全地進(jìn)行交易處理--所有這些都將一個(gè)基于Web的瘦客戶端、一個(gè)數(shù)據(jù)庫(kù)、一個(gè)應(yīng)用服務(wù)器和獨(dú)立驗(yàn)證公司提供的功能之間的交互很好地結(jié)合起來(lái)。

OTN提供了示例應(yīng)用程序,使用不同的產(chǎn)品、技術(shù)和標(biāo)準(zhǔn)組合來(lái)解決這樣復(fù)雜的問(wèn)題。一些示例采用了它們自己的驗(yàn)證機(jī)制;另一些則利用了內(nèi)置到Oracle 9i應(yīng)用服務(wù)器(Oracle 9iAS)中的單一登錄(Single Sign-On , SSO)特性。OTN還提供了一個(gè)利用了Oracle 9i數(shù)據(jù)庫(kù)的xml DB特性的后端應(yīng)用程序示例。

Web服務(wù)這一技術(shù)被用于每個(gè)信用卡示例應(yīng)用中。通過(guò)使用Web服務(wù),OTN開(kāi)發(fā)人員可以有效地將需要的功能內(nèi)置到分立的組件中。這種方法實(shí)現(xiàn)了應(yīng)用程序的模塊化而不是整體化,因此更加靈活且更易于維護(hù)。開(kāi)發(fā)人員可以在不影響主應(yīng)用程序的情況下改變組件的實(shí)施,或者只需修改幾行代碼就可以使用不同的組件。因此,Web服務(wù)可以在應(yīng)用程序之間被共享和重復(fù)使用,并且在時(shí)機(jī)成熟時(shí)可以輕松地被移植到企業(yè)級(jí)網(wǎng)格計(jì)算環(huán)境。

OTN會(huì)員可以下載以下示例代碼(和OTN上任何其他示例代碼),研究它們,根據(jù)自己的開(kāi)發(fā)需求混合和搭配使用這些解決方案。

使用J2EE設(shè)計(jì)模式的VSM

虛擬購(gòu)物商場(chǎng)(Virtual Shopping Mall,VSM)示例應(yīng)用程序使廠商能夠建立在線商店,客戶可以瀏覽所有商店,系統(tǒng)管理員則可以批準(zhǔn)和拒絕新商店的申請(qǐng)并維護(hù)商店類(lèi)別列表。為了構(gòu)建VSM,OTN開(kāi)發(fā)人員實(shí)現(xiàn)了幾個(gè)有名的J2EE設(shè)計(jì)模式,包括session Fa?ade和模型-視圖-控制器(Model-View-Controller, MVC)。

VSM指南系列的一個(gè)模塊描述了OTN開(kāi)發(fā)人員如何通過(guò)Web服務(wù)重復(fù)使用一個(gè)軟件組件。VSM的信用卡服務(wù)組件通過(guò)三個(gè)java文件來(lái)實(shí)現(xiàn):一個(gè)定義了該組件方法的接口(CCServices),一個(gè)實(shí)現(xiàn)了該接口的類(lèi)(CCServicesImpl),以及另一個(gè)負(fù)責(zé)處理信用卡校驗(yàn)失敗時(shí)拋出的異常的類(lèi)(CCException)。關(guān)鍵操作--校驗(yàn)信用卡號(hào)由方法CCServicesImpl.validateCard來(lái)執(zhí)行,該方法使用了LUHN算法(也被稱為模10算法)。銀行、企業(yè)和其他實(shí)體現(xiàn)在在公共領(lǐng)域中廣泛采用了這一規(guī)則來(lái)生成和校驗(yàn)信用卡、賬戶和身份證號(hào)碼。

使用框架的VSM

BC4J-VSM示例應(yīng)用程序提供與VSM相同的功能性,但它是使用用于構(gòu)建組件和基于組件的應(yīng)用程序的Oracle框架Oracle 9i JDeveloper Business Components for Java (BC4J)來(lái)實(shí)現(xiàn)的。BC4J提供了現(xiàn)成的J2EE設(shè)計(jì)模式的實(shí)施,否則你將需要手工編寫(xiě)代碼。在BC4J-VSM中,信用卡服務(wù)組件通過(guò)多個(gè)文件實(shí)現(xiàn)。然而,OTN開(kāi)發(fā)人員只需創(chuàng)建并填寫(xiě)一個(gè)表并為一個(gè)Java類(lèi)編寫(xiě)一個(gè)方法,JDeveloper就可以生成所有需要的東西。

表CC_MASTER是通過(guò)腳本webstore.sql創(chuàng)建和填寫(xiě)的,如下所示:

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);

接下來(lái),OTN開(kāi)發(fā)人員使用JDeveloper向?qū)?lái)創(chuàng)建一個(gè)基于CC_MASTER表的實(shí)體對(duì)象(CcMaster)。這些向?qū)н€為相應(yīng)的視圖對(duì)象(CreditCardValidationView)和視圖對(duì)象實(shí)現(xiàn)(CreditCardValidationViewImpl)生成代碼。

關(guān)鍵操作--校驗(yàn)信用卡號(hào)由方法CreditCardValidationViewImpl.validateCard來(lái)執(zhí)行。在這個(gè)示例應(yīng)用程序中,并不是像在商業(yè)應(yīng)用程序中那樣對(duì)信用卡號(hào)進(jìn)行校驗(yàn)。然而,校驗(yàn)代碼卻保證了用戶輸入數(shù)字的正確位數(shù)等。

在線產(chǎn)品商店和Web服務(wù)安全性

在線產(chǎn)品商店(Online Product Store)是另一個(gè)示例應(yīng)用程序,它顯示了如何確保Web服務(wù)的安全。有兩個(gè)方法可以實(shí)現(xiàn)這個(gè)目標(biāo):

XML級(jí)別的安全性: 選項(xiàng)包括XML加密、XML數(shù)字簽名API、XKMS(XML密匙管理規(guī)范)和SAML(安全性聲明標(biāo)記語(yǔ)言,Security Assertion Markup Language)。

 

傳輸級(jí)別的安全性:通過(guò)確保Web服務(wù)通信所使用的網(wǎng)絡(luò)協(xié)議的安全來(lái)實(shí)現(xiàn)。SSL是業(yè)界認(rèn)可的通過(guò)TCP/ip進(jìn)行安全加密通信的標(biāo)準(zhǔn)協(xié)議。在這個(gè)模型中,Web服務(wù)客戶端使用SSL來(lái)打開(kāi)一個(gè)到Web服務(wù)的安全套接口。然后,客戶端在這個(gè)安全套接口上通過(guò)HTTPS發(fā)送和接收SOAP消息。SSL實(shí)現(xiàn)通過(guò)對(duì)套接口上所有的網(wǎng)絡(luò)通信進(jìn)行加密而確保了私密性。SSL還可以利用PKI基礎(chǔ)架構(gòu)來(lái)驗(yàn)證提供給客戶端的Web服務(wù)。

因?yàn)樵赬ML級(jí)別實(shí)現(xiàn)安全性的標(biāo)準(zhǔn)仍然在制定當(dāng)中,所以O(shè)TN開(kāi)發(fā)人員選擇使用SSL和PKI基礎(chǔ)架構(gòu)在傳輸級(jí)別實(shí)現(xiàn)安全性。Oracle 9iAS利用基于Apache的Oracle HTTP 服務(wù)器、Oracle 9iAS Containers for J2EE(OC4J)和Oracle 9iAS 門(mén)戶為構(gòu)建和部署Web應(yīng)用程序提供了一個(gè)堅(jiān)實(shí)的框架。這些產(chǎn)品都使用了由Oracle 9iAS基礎(chǔ)架構(gòu)提供的高級(jí)安全功能性。 (Oracle 9iAS基礎(chǔ)架構(gòu)包括Oracle 9iAS 元數(shù)據(jù)信息庫(kù)、Oracle 互聯(lián)網(wǎng)目錄、Oracle 9iAS SSO和Oracle 管理服務(wù)器。)

通過(guò)提供正確的用戶名和密碼,在線產(chǎn)品商店的用戶可以查看產(chǎn)品目錄,并向購(gòu)物車(chē)中添加產(chǎn)品。在為購(gòu)買(mǎi)的產(chǎn)品付賬時(shí),用戶應(yīng)輸入信用卡號(hào),應(yīng)用程序就會(huì)通過(guò)SSL與信用卡Web服務(wù)建立聯(lián)系,從而說(shuō)明如何安全地訪問(wèn)一個(gè)Web服務(wù)。

在線產(chǎn)品商店和單一登錄

為了闡明另一種方法,一個(gè)獨(dú)立的在線商店模擬使用了Oracle 9iAS SSO來(lái)驗(yàn)證用戶。SSO使用戶只需注冊(cè)一次就可以登錄到Oracle 9iAS及其他Web應(yīng)用程序。這個(gè)示例應(yīng)用程序使用數(shù)字證書(shū)來(lái)注冊(cè)到通過(guò)JAZN被置于Oracle 9ias SSO服務(wù)器的保護(hù)之下的Web應(yīng)用程序。JAZN是Oracle對(duì)Java驗(yàn)證和授權(quán)服務(wù)(Java Authentication and Authorization Service ,JAAS)的實(shí)現(xiàn),JAAS則是使服務(wù)能夠?qū)τ脩暨M(jìn)行驗(yàn)證并授權(quán)他們使用應(yīng)用程序資源的Java包。

SSO服務(wù)器使用一個(gè)加密的SSL通道為客戶端Web瀏覽器提供一個(gè)cookie,應(yīng)用程序可以使用這個(gè)cookie對(duì)用戶進(jìn)行驗(yàn)證,而無(wú)需用戶登錄。一旦用戶通過(guò)了驗(yàn)證,授權(quán)過(guò)程就會(huì)啟動(dòng),為用戶授予訪問(wèn)特權(quán)資源的權(quán)限,如在數(shù)據(jù)庫(kù)中插入行或?qū)ξ募M(jìn)行寫(xiě)操作。

這個(gè)示例提供了一個(gè)要求用戶登錄到在線辦公用品商店的Web應(yīng)用程序。訪問(wèn)該應(yīng)用程序主頁(yè)URL的用戶被重定向到SSO服務(wù)器,由JAAS進(jìn)行驗(yàn)證。這個(gè)示例使用數(shù)字證書(shū)對(duì)用戶進(jìn)行驗(yàn)證,用戶無(wú)需提供用戶名和密碼就可以登錄。

成功登錄后,用戶可以購(gòu)買(mǎi)產(chǎn)品并通過(guò)信用卡支付。這個(gè)示例使用一個(gè)信用卡Web服務(wù)來(lái)校驗(yàn)用戶的信用卡號(hào)。它還確認(rèn)用戶擁有足夠的資金額來(lái)購(gòu)買(mǎi)產(chǎn)品。Web客戶端通過(guò)SSL通道與Web服務(wù)通信,并使用數(shù)字證書(shū)來(lái)驗(yàn)證Web服務(wù)。

使用XML DB的信用卡支付網(wǎng)關(guān)

信用卡支付網(wǎng)關(guān)示例應(yīng)用程序使用了Oracle 9i XML DB (在Oracle 9i數(shù)據(jù)庫(kù)第2版及更高版本中提供)的特性來(lái)模擬信用卡公司在互聯(lián)網(wǎng)上提供的一些后端功能。這個(gè)應(yīng)用程序在XMLType表中以XML文檔的方式管理客戶簡(jiǎn)檔、賬戶余額和信用卡持有者及商家的其他數(shù)據(jù),通過(guò)模擬實(shí)際商店中的信用卡采購(gòu)而生成購(gòu)買(mǎi)請(qǐng)求。

對(duì)于每次購(gòu)買(mǎi),經(jīng)銷(xiāo)商都會(huì)使用一個(gè)客戶端應(yīng)用程序來(lái)提交具體數(shù)據(jù),包括信用卡號(hào)和金額以及商家的賬號(hào)。客戶端調(diào)用Web服務(wù),由Web服務(wù)根據(jù)信用卡持有者的賬號(hào)對(duì)請(qǐng)求進(jìn)行校驗(yàn)并返回結(jié)果。

Web服務(wù)是部署到OC4J上的用Java編寫(xiě)的無(wú)狀態(tài)、遠(yuǎn)程過(guò)程調(diào)用形式的Web服務(wù)。客戶端Java類(lèi)通過(guò)jsp接收輸入數(shù)據(jù)并調(diào)用Web服務(wù)的方法。然后,Web服務(wù)調(diào)用一個(gè)PL/SQL過(guò)程來(lái)校驗(yàn)請(qǐng)求,并將來(lái)自PL/SQL過(guò)程的結(jié)果回復(fù)給客戶端。該應(yīng)用程序?qū)⒑戏ǖ慕灰状鎯?chǔ)在事務(wù)處理表CPG_TRANSACTIONS中。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 科技| 黑龙江省| 龙陵县| 绥芬河市| 济阳县| 和顺县| 竹北市| 万盛区| 浏阳市| 泌阳县| 米泉市| 九江市| 衡阳市| 手游| 湛江市| 康乐县| 阆中市| 鲁甸县| 藁城市| 锡林郭勒盟| 平潭县| 凤凰县| 乳山市| 垣曲县| 舟曲县| 德清县| 历史| 锡林郭勒盟| 达日县| 郴州市| 尚义县| 阿克陶县| 宝清县| 文登市| 惠安县| 军事| 上栗县| 佛坪县| 江津市| 兰州市| 永福县|