• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      電子商務(wù)的數(shù)據(jù)陳舊性檢查的設(shè)計(jì)與實(shí)現(xiàn)

      2013-07-23 04:41:26王鵬
      計(jì)算機(jī)光盤軟件與應(yīng)用 2013年3期
      關(guān)鍵詞:版本號電子商務(wù)

      王鵬

      摘 要:現(xiàn)在電子商務(wù)系統(tǒng)需要盡可能地快速響應(yīng)用戶的請求,而用戶處理電子商務(wù)業(yè)務(wù)的時(shí)候往往必須根據(jù)服務(wù)器中最新的數(shù)據(jù)才能夠做出正確的判斷,這就需要對電子商務(wù)的數(shù)據(jù)進(jìn)行數(shù)據(jù)陳舊性檢查,以提供給用戶最新的數(shù)據(jù)。本文根據(jù)電子商務(wù)的這一需求,探討了一種解決方案,同時(shí)結(jié)合現(xiàn)今進(jìn)行電子商務(wù)開發(fā)中廣泛應(yīng)用的技術(shù)――EJB中間件技術(shù),針對開發(fā)中會遇到的困難,提供了一種開發(fā)思路。

      關(guān)鍵詞:數(shù)據(jù)陳舊性;電子商務(wù);版本號;EJB

      中圖分類號:TN911 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-9599 (2013) 03-0000-02

      引言

      從應(yīng)用的角度來看,電子商務(wù)系統(tǒng)[1]需要解決越來越多的分布式網(wǎng)絡(luò)應(yīng)用的需求,電子商務(wù)應(yīng)用系統(tǒng)與一般的企業(yè)信息系統(tǒng)的明顯區(qū)別在于電子商務(wù)的客戶群比較多,隨著信息技術(shù)的發(fā)展和網(wǎng)絡(luò)應(yīng)用的普及,客戶群還有大幅度增長的趨勢。這就要求在使用J2EE體系進(jìn)行開發(fā)電子商務(wù)應(yīng)用系統(tǒng)的時(shí)候要充分考慮到客戶群的數(shù)量以及系統(tǒng)響應(yīng)客戶群的速度問題。

      在電子商務(wù)系統(tǒng)[2]開發(fā)中遇到的一個(gè)普遍問題是在更新服務(wù)器的數(shù)據(jù)之前,這些數(shù)據(jù)是需要用戶手動操作的,用戶會有一個(gè)相對比較長的思考時(shí)間(比如客戶需要填寫一個(gè)重要報(bào)表等),系統(tǒng)的處理過程會被這種情況所打斷。因此,系統(tǒng)不可能等待每個(gè)客戶端進(jìn)行操作以后才接受其他客戶端的申請,這樣事務(wù)處理需要等待的時(shí)間過長。為了提高效率,就需要一種比較好的并發(fā)處理方法,以檢查之前服務(wù)器提供給客戶端進(jìn)行決策的數(shù)據(jù)是不是陳舊的,如果是就進(jìn)行數(shù)據(jù)更新并且通知客戶端。這樣處理的一個(gè)好處是數(shù)據(jù)可能只有一小部分是陳舊的,只需要通知客戶端重新處理這部分?jǐn)?shù)據(jù)即可。本文針對這個(gè)普遍存在的情況,結(jié)合J2EE的EJB技術(shù)討論了一種解決的方法,并給出了該方法的實(shí)現(xiàn)方案。

      串行解決方案的缺陷

      不同的分布式應(yīng)用程序經(jīng)常發(fā)生操作同一資源的情況,為了保證每個(gè)事務(wù)讀取的數(shù)據(jù)是最新的,最簡單的方法就是事務(wù)串行執(zhí)行。如圖一所示,程序A和B同時(shí)需要讀取和更新一個(gè)Accout資源,程序A首先讀取數(shù)據(jù),程序B一直等待程序A讀寫了數(shù)據(jù)后才能夠操作該數(shù)據(jù)。

      但是由于采用串行化執(zhí)行,短事務(wù)可能得等待它前面的長事務(wù)完成,這可能導(dǎo)致難以預(yù)測的時(shí)延,所以串行化方案的效率低下,系統(tǒng)的可擴(kuò)展性比較差,不利于將來飛速發(fā)展的電子商務(wù)業(yè)務(wù)的需要。

      3 版本號方案

      數(shù)據(jù)陳舊性檢查屬于數(shù)據(jù)庫的事務(wù)[3]并發(fā)執(zhí)行的一個(gè)特例。眾所周知,多個(gè)事務(wù)并發(fā)更新數(shù)據(jù)容易引起數(shù)據(jù)一致性問題,一個(gè)事務(wù)在數(shù)據(jù)讀取后和需要存儲之前,也許已經(jīng)被其他事務(wù)更新了,也就是說原先的客戶端所進(jìn)行的操作是基于原來陳舊的數(shù)據(jù)的,需要重新根據(jù)新的數(shù)據(jù)進(jìn)行處理??梢詤⒖紨?shù)據(jù)庫中時(shí)間戳協(xié)議處理事務(wù)并發(fā)的機(jī)制,對數(shù)據(jù)使用版本號進(jìn)行處理。版本號方案就是基于樂觀的并發(fā)執(zhí)行處理的,客戶端都是假設(shè)它所更新的數(shù)據(jù)是基于最新版本號的數(shù)據(jù)的。

      由于考慮到服務(wù)器的時(shí)鐘有可能被回?fù)芑蛘邥r(shí)間日期太小,難以排除兩個(gè)事務(wù)差不多同時(shí)需要更新版本號的時(shí)候,陳舊性檢查有可能變成無效的,所以使用一種比較簡單的方法,就是用一個(gè)簡單的整數(shù)表示版本號,然后遞增版本號來判斷數(shù)據(jù)是否陳舊。并發(fā)處理的原子性操作由數(shù)據(jù)庫本身完成,服務(wù)器端僅僅從大的方面進(jìn)行判斷數(shù)據(jù)是否陳舊,以方便反饋客戶端即可。具體操作如下:

      (1)給任何需要進(jìn)行判斷是否陳舊的數(shù)據(jù)添加版本號,根據(jù)實(shí)際需要,數(shù)據(jù)可以是表的一行,也可以是很多數(shù)據(jù)的集合。

      (2)一個(gè)事務(wù)讀取數(shù)據(jù)的同時(shí)讀取它的版本號。

      (3)當(dāng)需要更新數(shù)據(jù)的時(shí)候,同時(shí)返回該數(shù)據(jù)的版本號。

      (4)版本號檢查算法的偽代碼如下:

      4 在EJB中的實(shí)現(xiàn)難點(diǎn)

      4.1 如何在EJB中實(shí)現(xiàn)版本號方案

      4.2 如何處理并發(fā)的一致性問題

      通過EJB,我們能夠?qū)懗隹蓴U(kuò)展的、健壯的和安全的應(yīng)用程序,而不用自己構(gòu)造復(fù)雜的分布式組件框架。而EJB容器的實(shí)例調(diào)度池的優(yōu)點(diǎn)是實(shí)體Bean要比實(shí)際連接它的客戶數(shù)目少得多,當(dāng)一個(gè)用戶在思考的時(shí)候,用戶可以使用Bean實(shí)例為其他用戶服務(wù),這樣就節(jié)省了以前的系統(tǒng)資源。同時(shí),由于電子商務(wù)的需要處理的數(shù)據(jù)量比較大,所以不可能只使用一臺服務(wù)器提供服務(wù),那么現(xiàn)在許多J2EE服務(wù)器軟件(例如Weblogic8.0)提供了多臺服務(wù)器協(xié)作運(yùn)行的服務(wù)機(jī)制,對客戶端看來,這么多服務(wù)器共同工作時(shí)就好像只有一臺服務(wù)器在工作。這就提高了EJB中實(shí)行版本號方案時(shí)保持?jǐn)?shù)據(jù)的一致性的難度。這是因?yàn)槊恳慌_服務(wù)器都有一個(gè)Java的虛擬機(jī)JVM,EJB容器有能力將一個(gè)EJB實(shí)例跨過幾個(gè)JVM調(diào)用,因此一種罕見的情況有可能發(fā)生,那就是在不同服務(wù)器上的具有相同版本號的實(shí)體Bean同時(shí)被放在內(nèi)存中,服務(wù)器端檢查版本號的時(shí)候,調(diào)用實(shí)體Bean的checkVersion()函數(shù)的version != currentVersion語句的時(shí)候,兩個(gè)事務(wù)會同時(shí)檢測到版本號是相等的,那么這兩個(gè)實(shí)體Bean就有可能同時(shí)要求更新數(shù)據(jù)(setVersion(++currentVersion)語句來實(shí)現(xiàn))。此時(shí)不好判斷哪個(gè)實(shí)體Bean的數(shù)據(jù)是陳舊的。唯一的方法就是由應(yīng)用服務(wù)器或者數(shù)據(jù)庫的事務(wù)隔離機(jī)制來處理。不同的數(shù)據(jù)庫和應(yīng)用服務(wù)器有不同的并發(fā)處理方法,一般需要針對具體數(shù)據(jù)庫來編寫相應(yīng)的代碼。

      4.3 如何處理重復(fù)檢查的問題

      由于連接服務(wù)器的客戶端數(shù)量比較多,因此有可能發(fā)生一個(gè)客戶端在服務(wù)器數(shù)據(jù)處理比較頻繁的時(shí)候,重復(fù)檢查數(shù)據(jù)是否為最新的,并一直重復(fù)向服務(wù)器請求新版本的數(shù)據(jù),這樣就加大了服務(wù)器的工作量。因此可以在EJB的一個(gè)會話Bean中根據(jù)部署文件的設(shè)置來判斷允許重復(fù)嘗試的次數(shù),同時(shí)可以捕獲判斷版本號的時(shí)候拋出的異常,這就方便了客戶端做出相應(yīng)的處理。

      5 結(jié)束語

      今天,對IT 行業(yè)的挑戰(zhàn)就是怎樣在企業(yè)的上高效地開發(fā)和發(fā)布分布式應(yīng)用系統(tǒng)。為了減少開發(fā)成本和提高程序設(shè)計(jì)和開發(fā)速度,J2EE平臺提供了一套基于組件的設(shè)計(jì)開發(fā)以及集成和發(fā)布應(yīng)用程序的方法。但是企業(yè)的電子商務(wù)的需求千變?nèi)f化,因此需要根據(jù)實(shí)際情況,對分布式系統(tǒng)進(jìn)行針對性的開發(fā),不斷的提供好的開發(fā)方案,這樣才能促使企業(yè)的電子商務(wù)及其他應(yīng)用系統(tǒng)得到了新的發(fā)展,同時(shí)使企業(yè)具有強(qiáng)大的競爭優(yōu)勢。

      參考文獻(xiàn):

      [1]Choist,Whinston AB. The future of E-Commerce: integrate and customize. IEEE computer 1999,32(1):133~138.

      [2]蘭宜生.電子商務(wù)基本教程[M].清華大學(xué)出版杜,2004.

      [3]Abraham Silberschatz ,Henry E Korth. Database System concepts:third Edition[M].

      [4]Kyle Brown , Lee Cook. Whats it going to take to get you to go withEJBcomponents.http ://PPwww.900.ibm.comPdeveloper2WorksPcnPwebPibm - ejbPindex- eng. Shtml.

      [5]Floyd Marinescu. EJB Design Patterns[M].

      [6]http://java.sun.com/products/ejb/white2paper.html[EB/OL].

      [7]http://java.sun.com/j2ee/tutorial[EB/OL].

      [8]Sun Microsystems Inc. Java 2 Platform Enterprise Edition Specification (v1.3)[Z].USA :Sun Microsystems Inc,2001.

      猜你喜歡
      版本號電子商務(wù)
      2025年我國農(nóng)村電子商務(wù)交易額達(dá)到2.8萬億元
      ETCS基線3的系統(tǒng)版本管理方法
      認(rèn)識vSphere安裝程序
      《電子商務(wù)法》如何助力直銷
      電子商務(wù)
      蘋果更新OS X 并帶來iTunes全新UI
      CHIP新電腦(2016年6期)2016-06-21 12:23:56
      深入淺出 全面獲知系統(tǒng)版本號
      關(guān)于加快制定電子商務(wù)法的議案
      電子商務(wù)人的核心能力
      期刊訂閱電子商務(wù)平臺
      北宁市| 黎川县| 和政县| 北辰区| 武邑县| 福泉市| 潮安县| 河间市| 科技| 潮安县| 大洼县| 内黄县| 辽中县| 商丘市| 阿坝县| 仙游县| 新疆| 漳浦县| 酉阳| 瑞金市| 涞水县| 肃宁县| 塘沽区| 呈贡县| 满洲里市| 西充县| 钦州市| 安达市| 甘洛县| 丰城市| 喀喇沁旗| 东海县| 陆丰市| 礼泉县| 棋牌| 广州市| 收藏| 来宾市| 威远县| 浪卡子县| 雅江县|