資源描述:
《基于j2ee架構(gòu)的企業(yè)應(yīng)用開發(fā)新思維》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫(kù)。
1、基于J2EE架構(gòu)的企業(yè)應(yīng)用開發(fā)新思維1前言22Web開發(fā)的困境32.1概述32.2Web系統(tǒng)開發(fā)的復(fù)雜性32.3開發(fā)人員的困境52.4維護(hù)人員的困境62.5科技公司(乙方)的困境72.6客戶(甲方)的困境82.7原因分析103Web應(yīng)用以誰為中心?瀏覽器?服務(wù)器?113.1B/S的歷史發(fā)展沿革123.2計(jì)算模式歷史143.3初步結(jié)論143.4新模式技術(shù)架構(gòu)143.5新模式技術(shù)范圍163.6新模式下人員分工174J2EE框架批判184.1關(guān)于J2EE開發(fā)的比喻184.2從C/S開發(fā)模式反思分層的必要性194.3技術(shù)框架上的皮之不存
2、,毛將焉附204.4J2EE系統(tǒng)架構(gòu)的致命缺陷214.5Hibernate是垃圾224.6為什么J2EE如此低效-------用戶無法參與開發(fā)234.7談?wù)剬?duì)web開發(fā)UI基礎(chǔ)架構(gòu)的一些看法275Web企業(yè)開發(fā)困境原因分析315.1分工過細(xì)315.2技術(shù)路線多頭并進(jìn)325.3開發(fā)維護(hù)復(fù)雜度太高335.4客戶無法參與336解決之道346.1WebDW產(chǎn)品說明346.1.1WebDW簡(jiǎn)介346.1.2WebDW設(shè)計(jì)思路356.1.2.1WebDW釋義356.1.2.2WebDW的設(shè)計(jì)理念366.1.2.3數(shù)據(jù)窗口對(duì)象說明376.1.
3、3界面示意圖(同一個(gè)界面文件,VB,Java,F(xiàn)lex版本不同實(shí)現(xiàn))386.2其它可行的技術(shù)方向396.2.1跨越語言和平臺(tái)的鴻溝397結(jié)束語401前言在企業(yè)級(jí)的應(yīng)用系統(tǒng)開發(fā)領(lǐng)域,J2EE架構(gòu)現(xiàn)在已經(jīng)被普遍接受了。雖然它并未完全兌現(xiàn)剛剛出現(xiàn)時(shí)的種種美好許諾,跨平臺(tái),分布式,易于開發(fā)維護(hù)等等,但J2EE的廣泛普及,已經(jīng)是一個(gè)不爭(zhēng)的事實(shí)。雖然J2EE已經(jīng)非常普及,但從技術(shù)上來講,它本身還是存在很多缺陷的,比較突出的缺點(diǎn),就是開發(fā)效率低,維護(hù)更加復(fù)雜,許多項(xiàng)目組都陷入其中不可自拔。本文將就造成這一現(xiàn)象的原因進(jìn)行初步探討,并在此基礎(chǔ)上提
4、出自己的解決思路。本文討論的范圍僅限于采用B/S開發(fā)企業(yè)的應(yīng)用系統(tǒng),不涉及網(wǎng)站類型的應(yīng)用開發(fā)。討論的技術(shù)方向,主要針對(duì)J2EE,其余技術(shù)方向不作為重點(diǎn)討論,僅供參考。本文先從Web開發(fā)的現(xiàn)狀困境開始,分析造成目前困境的原因,然后通過回顧B/S技術(shù)架構(gòu)的演化,以及對(duì)比C/S和B/S的開發(fā)模式的差異,提出一套新的開發(fā)解決思路,最后介紹WebDW系列產(chǎn)品的設(shè)計(jì)目的和簡(jiǎn)單功能,再以此為基礎(chǔ)來進(jìn)行擴(kuò)展討論。2Web開發(fā)的困境2.1概述說明:Web應(yīng)用系統(tǒng)的開發(fā),像一座大山一樣,把所有的人都?jí)嚎辶恕W曰ヂ?lián)網(wǎng)出現(xiàn)以來,企業(yè)應(yīng)用系統(tǒng)的架構(gòu)發(fā)生了
5、很大的變化,C/S架構(gòu)被廢棄,B/S成為絕對(duì)的主流。但B/S架構(gòu)本身,要比C/S復(fù)雜的多,加上新技術(shù)層出不窮,整個(gè)行業(yè)都處于巨大的困境之中。Web應(yīng)用系統(tǒng)的開發(fā),就像一座大山一樣,把所有的人,無論是甲方還是乙方,無論是開發(fā)人員,維護(hù)人員還是系統(tǒng)用戶,都被累垮了。2.2Web系統(tǒng)開發(fā)的復(fù)雜性B/S系統(tǒng)本身的架構(gòu)設(shè)計(jì),要比C/S系統(tǒng)復(fù)雜很多,在C/S架構(gòu)中,一般是兩層結(jié)構(gòu)。如下圖。一般在這種架構(gòu)中,服務(wù)器是一個(gè)數(shù)據(jù)庫(kù)服務(wù)器,只負(fù)責(zé)數(shù)據(jù)的存儲(chǔ)和讀取訪問支持;前臺(tái)程序采用VB,PB,Delphi等圖形開發(fā)工具來開發(fā),通過網(wǎng)絡(luò)直接連接到后
6、臺(tái)的數(shù)據(jù)庫(kù)服務(wù)器,通過發(fā)送SQL命令來實(shí)現(xiàn)數(shù)據(jù)庫(kù)的訪問。這種開發(fā)環(huán)境下可以使用圖形化的控件來搭建用戶界面,用戶的交互性比較好。缺點(diǎn)在于應(yīng)用程序發(fā)布在客戶端,如果客戶機(jī)數(shù)量很多的話,客戶機(jī)程序的安裝,升級(jí)都比較困難。而在B/S結(jié)構(gòu)中,涉及到了多種服務(wù)器類型,Web服務(wù)器,App服務(wù)器,DB服務(wù)器。如下圖。在B/S系統(tǒng)中,用戶通過客戶機(jī)上的瀏覽器來訪問后臺(tái)的Web服務(wù)器,Web服務(wù)器再把相應(yīng)的請(qǐng)求轉(zhuǎn)發(fā)給應(yīng)用服務(wù)器來處理,應(yīng)用服務(wù)器再將其中的數(shù)據(jù)訪問請(qǐng)求轉(zhuǎn)發(fā)給數(shù)據(jù)庫(kù)服務(wù)器進(jìn)行處理。在C/S系統(tǒng)中,應(yīng)用系統(tǒng)或者應(yīng)用程序本身是一個(gè)完整的,
7、獨(dú)立的整體,一般采用一種開發(fā)語言來開發(fā)即可,這種開發(fā)語言不僅負(fù)責(zé)用戶界面,也負(fù)責(zé)業(yè)務(wù)邏輯控制,以及數(shù)據(jù)訪問請(qǐng)求的生成發(fā)送,主要的開發(fā)和執(zhí)行工作是在客戶機(jī)上完成的。而在B/S系統(tǒng)中,整個(gè)系統(tǒng)的架構(gòu)要復(fù)雜的多。首先,客戶機(jī)上只有一個(gè)通用的瀏覽器,用戶操作界面是通過Web服務(wù)器返回的HTML語言來進(jìn)行描述的,如果需要一些動(dòng)態(tài)特征,則不得不通過在HTML頁(yè)面中嵌入JavaScript來實(shí)現(xiàn)。在應(yīng)用系統(tǒng)中,大量的頁(yè)面是動(dòng)態(tài),而非靜態(tài)頁(yè)面,因此必須在應(yīng)用服務(wù)器上完成動(dòng)態(tài)頁(yè)面到靜態(tài)HTML的轉(zhuǎn)換工作。如果動(dòng)態(tài)頁(yè)面中包含數(shù)據(jù)訪問請(qǐng)求,則又必須訪
8、問后臺(tái)的數(shù)據(jù)庫(kù)服務(wù)器來協(xié)助完成此項(xiàng)工作。以J2EE標(biāo)準(zhǔn)流程為例,當(dāng)用戶在瀏覽器上輸入一個(gè)地址,或者URL以后,這個(gè)URL首先傳遞給Web服務(wù)器,然后再轉(zhuǎn)發(fā)給App服務(wù)器來解釋執(zhí)行。假如請(qǐng)求是一個(gè)jsp頁(yè)面,應(yīng)用服務(wù)器首先讀取這個(gè)文件,然后把它翻譯成一個(gè)java文