亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        面向中小企業(yè)電子商務(wù)系統(tǒng)的應(yīng)用框架研究

        2009-12-31 00:00:00管祺騏
        商場(chǎng)現(xiàn)代化 2009年31期

        [摘 要] 本文結(jié)合中小企業(yè)電子商務(wù)系統(tǒng)的特點(diǎn),分析了J2EE平臺(tái)下開(kāi)發(fā)模式的發(fā)展,介紹了一種在實(shí)踐中積累形成的業(yè)務(wù)構(gòu)造平臺(tái)的初步設(shè)想和原型,分析了其特點(diǎn)、應(yīng)用前景和待完善的地方。

        [關(guān)鍵詞] 框架技術(shù) 軟件復(fù)用 電子商務(wù)系統(tǒng) MVC

        一、概述

        軟件的可重用性一直是軟件工程所追求的目標(biāo)之一,軟件工程界希望有一天能和其他工業(yè)領(lǐng)域一樣,利用標(biāo)準(zhǔn)化的軟件模塊快速構(gòu)建特定的應(yīng)用系統(tǒng)。

        這種情況下框架應(yīng)運(yùn)而生,面向?qū)ο笙到y(tǒng)獲得的最大的復(fù)用方式就是框架,一個(gè)大的應(yīng)用系統(tǒng)往往可能由多層互相協(xié)作的框架組成。因此框架技術(shù)已經(jīng)日益成為提高軟件生產(chǎn)效率的關(guān)鍵。

        1.什么是應(yīng)用框架

        對(duì)于應(yīng)用框架,一直以來(lái)沒(méi)有一個(gè)統(tǒng)一的定義,下面給出兩個(gè)最常用的定義:“框架是一個(gè)系統(tǒng)全部或者部分的可復(fù)用設(shè)計(jì),通常由一組抽象類和類之間的協(xié)作組成”;“框架是一個(gè)能夠被開(kāi)發(fā)人員實(shí)例化的系統(tǒng)骨架”。這兩個(gè)定義是相互補(bǔ)充的,前者從復(fù)用的角度描述了框架,而后者給出了框架的目的。根據(jù)以上兩個(gè)定義可知:(1)框架既分割了應(yīng)用領(lǐng)域中的類、定義了各部分的主要責(zé)任和類與對(duì)象的協(xié)作關(guān)系,還規(guī)定了控制流程;(2)框架記錄并實(shí)現(xiàn)了其應(yīng)用領(lǐng)域的主要公共設(shè)計(jì)決策。由此可以認(rèn)為,框架是一個(gè)“部分實(shí)現(xiàn)”的軟件體系結(jié)構(gòu),是支持軟件設(shè)計(jì)復(fù)用1.2電子商務(wù)系統(tǒng)開(kāi)發(fā)過(guò)程中框架技術(shù)應(yīng)用的重要性

        電子商務(wù)系統(tǒng)有著應(yīng)用系統(tǒng)的共性,同時(shí)也有著自身的特點(diǎn),相對(duì)來(lái)說(shuō)流程和操作較為規(guī)范和簡(jiǎn)單,完全可以總結(jié)出規(guī)范的流程,從而可以說(shuō)為復(fù)用技術(shù)的應(yīng)用創(chuàng)造了條件。

        2.框架技術(shù)在系統(tǒng)開(kāi)發(fā)中的重要作用

        (1)知識(shí)積累。從代碼出發(fā)進(jìn)行知識(shí)的積累是最佳的辦法??蚣芫褪沁@種思路的產(chǎn)出物??蚣馨舜罅康拇a,這些代碼是對(duì)某個(gè)特定問(wèn)題領(lǐng)域中抽象概念及這些抽象概念之間關(guān)系的描述。

        (2)資產(chǎn)的保護(hù)。知識(shí)積累本身就是一項(xiàng)對(duì)資產(chǎn)的保護(hù)工作。而另一項(xiàng)很重要的保護(hù)工作就是軟件組織(尤其是企業(yè))需要保證對(duì)知識(shí)的學(xué)習(xí)和改進(jìn)是經(jīng)過(guò)合法授權(quán)的。將知識(shí)積累為框架的形式有助于緩解這種情況。

        (3)鼓勵(lì)重用。在軟件組織中形成以框架為核心的開(kāi)發(fā)方式,在開(kāi)發(fā)中使用框架,并在開(kāi)發(fā)完成后改進(jìn)框架。在這個(gè)反覆的過(guò)程中,重用的工作就已經(jīng)開(kāi)展起來(lái)了。

        (4)優(yōu)化架構(gòu)??蚣艽砹艘环N優(yōu)秀的軟件架構(gòu)??蚣芏x了擴(kuò)展方式,從而規(guī)范了框架的使用行為。這使得軟件能夠保持整體架構(gòu)的穩(wěn)定性和一致性。

        二、應(yīng)用框架eCommerce Framework的設(shè)計(jì)實(shí)現(xiàn)

        1.J2EE平臺(tái)下應(yīng)用系統(tǒng)開(kāi)發(fā)模式的進(jìn)化過(guò)程

        (1)JSPModel1

        早期的JSP規(guī)范提出了兩種用JSP技術(shù)建立應(yīng)用程序的方式。這兩種方式在術(shù)語(yǔ)中分別稱作JSP Model 1 和JSP Model 2,它們的本質(zhì)區(qū)別在于處理批量請(qǐng)求的位置不同。在Model 1體系中,如圖1所示,JSP頁(yè)面獨(dú)自響應(yīng)請(qǐng)求并將處理結(jié)果返回客戶。這里仍然存在表達(dá)與內(nèi)容的分離,因?yàn)樗械臄?shù)據(jù)存取都是由bean來(lái)完成的。盡管Model 1體系十分適合簡(jiǎn)單應(yīng)用的需要,它卻不能滿足復(fù)雜的大型應(yīng)用程序的實(shí)現(xiàn)。不加選擇地隨意運(yùn)用Model 1,會(huì)導(dǎo)致JSP頁(yè)內(nèi)被嵌入大量的腳本片段或Java代碼,特別是當(dāng)需要處理的請(qǐng)求量很大時(shí),情況更為嚴(yán)重。

        圖中文字:Request:請(qǐng)求;Response:響應(yīng);Application Server:應(yīng)用服務(wù)器;

        Enterprise Servers/Data Sources:企業(yè)服務(wù)器/數(shù)據(jù)源。

        (2)JSPModel2

        Model 2體系結(jié)構(gòu),如圖2所示,是一種把JSP與servlets聯(lián)合使用來(lái)實(shí)現(xiàn)動(dòng)態(tài)內(nèi)容服務(wù)的方法。它吸取了兩種技術(shù)各自的突出優(yōu)點(diǎn),用JSP生成表達(dá)層的內(nèi)容,讓servlets完成深層次的處理任務(wù)。

        圖中文字:Controller、View、Model分別為MVC設(shè)計(jì)模式中的控制者、視圖、模型;

        其他同圖1。

        (3)MVC模式的杰出實(shí)現(xiàn)——Struts

        MVC本身就是一個(gè)非常復(fù)雜的系統(tǒng),所以采用MVC實(shí)現(xiàn)Web應(yīng)用時(shí),最好選一個(gè)現(xiàn)成的MVC框架,在此之下進(jìn)行開(kāi)發(fā),從而取得事半功倍的效果。現(xiàn)在有很多可供使用的MVC框架,由于Struts有完整的文檔并且相對(duì)來(lái)講比較簡(jiǎn)單,所以用它開(kāi)發(fā)MVC系統(tǒng)還是比較方便地。

        作為一個(gè)MVC的框架,Struts對(duì)Model、View和Controller都提供了對(duì)應(yīng)的實(shí)現(xiàn)組件,下面分別進(jìn)行介紹,并且看看它們是如何結(jié)合在一起的。

        Struts框架的處理流程清楚的體現(xiàn)了MVC系統(tǒng)的特點(diǎn),簡(jiǎn)單的Struts組件結(jié)構(gòu)如圖3所示。Struts Controller ActionServlet處理客戶請(qǐng)求,利用配置的ActionMapping對(duì)象把請(qǐng)求映射到Action處理器對(duì)象進(jìn)行處理。Action處理對(duì)象訪問(wèn)ActionForm中的數(shù)據(jù),處理和響應(yīng)客戶請(qǐng)求,它還調(diào)用后臺(tái)的Bean組件,這些組件封裝了具體的業(yè)務(wù)邏輯。Action處理器對(duì)象根據(jù)處理結(jié)果通知Controller,Controller進(jìn)行下一步的處理。

        2.eCommerceFramework的設(shè)計(jì)

        從上面的介紹不難看出struts在將問(wèn)題分為幾個(gè)部分的同時(shí)也引入了復(fù)雜性。毫無(wú)疑問(wèn),要理解 Struts 必須接受一定的培訓(xùn),對(duì)開(kāi)發(fā)者的要求較高。而且在實(shí)際開(kāi)發(fā)中我們發(fā)現(xiàn)它的有些特性并不合適規(guī)模相對(duì)較小的電子商務(wù)系統(tǒng)的開(kāi)發(fā),如taglib等。

        這樣我們就希望根據(jù)需要開(kāi)發(fā)適合自己的MVC框架實(shí)現(xiàn),這就是下面要重點(diǎn)介紹的eCommerceFramework。

        (1)傳統(tǒng)MVC的弱點(diǎn)

        MVC框架體現(xiàn)了一種“分治”的思想,他將業(yè)務(wù)邏輯、數(shù)據(jù)的訪問(wèn)與界面表現(xiàn)進(jìn)行了分離,為我們開(kāi)發(fā)具有伸縮性、便于擴(kuò)展、便于整個(gè)流程維護(hù)的系統(tǒng)提供了必要的條件。但是在項(xiàng)目實(shí)踐中不難發(fā)現(xiàn),即使使用了MVC,開(kāi)發(fā)基于J2EE的系統(tǒng)仍然不是一件輕松的事情。過(guò)多的bean其實(shí)重復(fù)著大致相同的操作——存取數(shù)據(jù);不同層間數(shù)據(jù)交換的格式?jīng)]有規(guī)范;布局相似的JSP頁(yè)面仍然重用性不高;框架沒(méi)有加進(jìn)權(quán)限控制……等等,這些都制約了系統(tǒng)開(kāi)發(fā)的效率和質(zhì)量。

        (2)持久化對(duì)象模型hibernate的啟示

        幾乎所有的企業(yè)級(jí)應(yīng)用都必定要涉及對(duì)象模型與數(shù)據(jù)庫(kù)之間的交互,因此持久層成為J2EE系統(tǒng)中最重要的部分之一。直接用JDBC或是DAO來(lái)實(shí)現(xiàn)會(huì)造成維護(hù)的”高消費(fèi)”,對(duì)于大型系統(tǒng)簡(jiǎn)直是一場(chǎng)噩夢(mèng)。

        作為一個(gè)純JAVA的O/R(對(duì)象/關(guān)系)映射框架,Hibernate很好的實(shí)現(xiàn)了對(duì)應(yīng)用程序持久化的管理。其基本原理是用xml映射文件描述業(yè)務(wù)實(shí)體類映射數(shù)據(jù)庫(kù)的方式,然后通過(guò)hibernate api實(shí)現(xiàn)持久化操作。

        (3)框架原型

        對(duì)MVC及Hibernate的思想進(jìn)行了整合與改進(jìn),我們提出了框架的原型。

        從圖4中不難看出,整個(gè)系統(tǒng)完全遵循MVC設(shè)計(jì)模式的框架,系統(tǒng)各個(gè)模塊之間的耦合相對(duì)寬松,在系統(tǒng)開(kāi)發(fā)期間,各部分開(kāi)發(fā)人員之間不存在明顯的制約關(guān)系。實(shí)際上,我們只需要關(guān)心業(yè)務(wù)邏輯,對(duì)于數(shù)據(jù)庫(kù)的操作,數(shù)據(jù)格式的轉(zhuǎn)換等等頭疼的問(wèn)題全由框架代勞了。下面的例子說(shuō)明了使用eCommerceFramework后實(shí)現(xiàn)一個(gè)業(yè)務(wù)流程所要做的工作。

        (4)框架的其他組件

        ①XML是關(guān)鍵。與HTML不同的是,XML語(yǔ)言能把數(shù)據(jù)與數(shù)據(jù)表示(例如界面)分開(kāi)。這種特性能夠讓XML適合在網(wǎng)絡(luò)上不同計(jì)算環(huán)境(無(wú)論是不同的操作系統(tǒng)環(huán)境,還是不同的設(shè)備顯示方式)中采用一致的信息表示方式?;贘2EE的大多數(shù)框架都使用了XML及相關(guān)技術(shù),如struts, velocity等等。

        在框架中,XML可以說(shuō)是框架的核心技術(shù)之一。無(wú)論在前臺(tái)頁(yè)面的展現(xiàn)、服務(wù)器的配置,還是遠(yuǎn)程數(shù)據(jù)傳輸、數(shù)據(jù)的持久化都可以看到XML的應(yīng)用。

        ②集成的權(quán)限控制。框架在設(shè)計(jì)之初就考慮了權(quán)限控制的接口(如圖5)?;具^(guò)程是這樣的,每一個(gè)頁(yè)面請(qǐng)求所對(duì)應(yīng)的Action都惟一的與模塊(Module)和組(Datagroup)關(guān)聯(lián),當(dāng)解析出請(qǐng)求的Action后,連接數(shù)據(jù)庫(kù)判斷當(dāng)前用戶是否有模塊操作權(quán)限和數(shù)據(jù)權(quán)限。通過(guò)Check進(jìn)行后續(xù)實(shí)體操作,反之則拒絕服務(wù),將信息返回用戶。

        三、結(jié)語(yǔ)

        eCommerceFramework設(shè)計(jì)的初衷主要是為了使基于J2EE的項(xiàng)目產(chǎn)品化,縮短開(kāi)發(fā)周期,提高系統(tǒng)質(zhì)量。經(jīng)過(guò)幾個(gè)項(xiàng)目的測(cè)試與檢驗(yàn),同等規(guī)模的系統(tǒng)開(kāi)發(fā)較普通MVC模式節(jié)省了超過(guò)50%的代碼量,相應(yīng)也就節(jié)省了50%的人月,并且測(cè)試中發(fā)現(xiàn)的bug數(shù)量?jī)H為過(guò)去開(kāi)發(fā)的系統(tǒng)的三分之一。當(dāng)然有一個(gè)前提,項(xiàng)目初期的架構(gòu)培訓(xùn)工作一定要做好,要讓項(xiàng)目組中每一個(gè)人知道框架的意義和接口,包括分析設(shè)計(jì)人員和程序員。

        但是可以看到框架在UI的設(shè)計(jì)和開(kāi)發(fā)方面做的還不夠,對(duì)于類似頁(yè)面的巨大工作量和重復(fù)勞動(dòng)還無(wú)能為力。這一點(diǎn)我們希望引入模型組件庫(kù)和邏輯頁(yè)面模板庫(kù)來(lái)解決。

        目前的應(yīng)用MIS系統(tǒng)都不可避免的有大量的統(tǒng)計(jì)和數(shù)據(jù)導(dǎo)入導(dǎo)出功能。對(duì)于統(tǒng)計(jì)結(jié)果的表現(xiàn)我們準(zhǔn)備應(yīng)用VML語(yǔ)言,并逐步形成自己的一套組件;數(shù)據(jù)轉(zhuǎn)換采用常用的EXECL格式,基本能夠滿足大部分應(yīng)用的要求。

        參考文獻(xiàn):

        [1]Sun Microsystem Inc.Java: 2 Platform Enterprise Edition Specfication v1.4,http://java.sun.com/j2ee

        [2]Mark Eagle:Object to Relational Mapping and Relationships with Hibernate

        [3]Chi-Hsing Chu Chien-Hsuan Huang Michael Lee:Building a XML-based unified interface system under J2EE architecture

        [4]Gorel HedinJorgen Lindskov Knudsen:Language Support for Application Design, Wiley 1999

        [5]Jiewei Lin:3D Web Graphics without Plugins using VML, CS297 Report

        [6]David S.Frankel著/鮑志云譯:《應(yīng)用MDA》

        [7] Johnson RE. Frameworks = (Components + Patterns). Communications of the ACM, 1997

        [8]Rumbaugh J, Jacobon I, Booch G. The UML Reference Manual. New York: Addison-Wesley, 1999

        [9]JamesTurner, Kevin Bedell. Struts Kick Start[M].北京電子工業(yè)出版社,2004

        人妻丰满多毛熟妇免费区| 亚洲av中文无码乱人伦在线咪咕| 无码成人一区二区| 亚洲日韩欧美国产高清αv| 日本熟妇中文字幕三级| 久久精品免费视频亚洲| 成人免费看aa片| 免费无码成人av在线播放不卡| 8090成人午夜精品无码| 爱爱免费视频一区二区三区| 在线播放真实国产乱子伦| 久久天天躁狠狠躁夜夜96流白浆| 午夜无码无遮挡在线视频| av免费网站免费久久网| 国产在线精品一区二区三区直播| 久久婷婷色综合一区二区| 亚洲中文字幕有码av| 久久人妻一区二区三区免费| 久久精品国产色蜜蜜麻豆| 亚洲天堂中文| 一区二区黄色素人黄色| 亚洲精品无码不卡在线播he| 内射少妇36p九色| 精品国免费一区二区三区| 少妇人妻精品久久888| 特黄做受又粗又长又大又硬| 国产黑丝在线| 亚洲中文字幕在线精品2021| 日韩在线 | 中文| 免费看久久妇女高潮a| 亚洲图片第二页| 青青河边草免费在线看的视频| 亚洲av无码一区二区乱孑伦as | 色视频综合无码一区二区三区| 青青操国产在线| 一区二区三区国产大片| 精品香蕉一区二区三区| 日本老熟欧美老熟妇| 精品国产自拍在线视频| 91精品国产一区国产二区久久| 久久www色情成人免费观看|