如何實(shí)現(xiàn)J2EE分布式系統(tǒng)框架設(shè)計(jì)

今天就跟大家聊聊有關(guān)如何實(shí)現(xiàn)J2EE分布式系統(tǒng)框架設(shè)計(jì),可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

成都創(chuàng)新互聯(lián)專注于溫縣企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè),成都做商城網(wǎng)站。溫縣網(wǎng)站建設(shè)公司,為溫縣等地區(qū)提供建站服務(wù)。全流程按需網(wǎng)站建設(shè),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)

一,導(dǎo)言

框架設(shè)計(jì)(Framework Design)是系統(tǒng)設(shè)計(jì)的重要組成部分,一個(gè)設(shè)計(jì)優(yōu)秀的框架是一個(gè)可擴(kuò)展和可改變(遷移)系統(tǒng)的基礎(chǔ)。下面針對(duì)常見(jiàn)J2EE分布式的信息系統(tǒng)(特別是B/S形式的系統(tǒng)),提出作者在框架設(shè)計(jì)上的觀點(diǎn)和思路。

(一)問(wèn)題和解決方法

目前應(yīng)用J2EE技術(shù)構(gòu)建信息系統(tǒng)的需求越來(lái)越復(fù)雜,開發(fā)周期越來(lái)越緊迫,同時(shí)對(duì)系統(tǒng)的穩(wěn)定性、擴(kuò)展性和可維護(hù)性要求也越來(lái)越高。那么如何滿足客戶對(duì)系統(tǒng)要求,加快我們的開發(fā)呢?信息系統(tǒng)需要一個(gè)持久化的存儲(chǔ)設(shè)備(如:數(shù)據(jù)庫(kù))中存放和取回信息數(shù)據(jù)。當(dāng)存儲(chǔ)設(shè)備改變時(shí),我們?nèi)绾问瓜到y(tǒng)支持這個(gè)改變,而不用重寫我們的程序代碼呢?已有的代碼能不能在新的系統(tǒng)上重用呢?類似問(wèn)題,給我們系統(tǒng)設(shè)計(jì)帶來(lái)很大的挑戰(zhàn)。

一個(gè)有效的解決方法是把信息業(yè)務(wù)信息按照應(yīng)用功能模塊拆分開:業(yè)務(wù)邏輯與數(shù)據(jù)庫(kù)服務(wù)器分開,用戶界面與業(yè)務(wù)邏輯分開。辟此相對(duì)獨(dú)立,任一方任何改變都不會(huì)影響對(duì)方。這就是我們經(jīng)常提到的三層概念。

*表示層(Presentation)

*業(yè)務(wù)邏輯層(Business Logic)

*數(shù)據(jù)存儲(chǔ)層(Data)

表示層負(fù)責(zé)提供用戶界面,業(yè)務(wù)邏輯層負(fù)責(zé)實(shí)現(xiàn)業(yè)務(wù)邏輯,數(shù)據(jù)存儲(chǔ)層負(fù)責(zé)業(yè)務(wù)邏輯層中所有數(shù)據(jù)的持久的存儲(chǔ)。

業(yè)務(wù)邏輯層在三層模型中具有很好的伸縮性,設(shè)計(jì)者往往根據(jù)系統(tǒng)容量、分發(fā)、部署等等情況再一步把業(yè)務(wù)邏輯層細(xì)分,從而產(chǎn)生了多層。這就是所謂n層體系結(jié)構(gòu)。所以業(yè)務(wù)邏輯層也是我們系統(tǒng)設(shè)計(jì)中最重要的一塊。

引入三層模型后,我們就可以針對(duì)這三層的特點(diǎn)定義出一種可重用的、可擴(kuò)展的類集合,它通過(guò)標(biāo)準(zhǔn)的API來(lái)先外提供服務(wù)。這些類集合的劃分和定義過(guò)程就是我們所要闡述的框架設(shè)計(jì)。

(二)框架定義及特點(diǎn)

什么是框架(framework)?框架可以定義為一組關(guān)系服務(wù)的可擴(kuò)展、可重用的子系統(tǒng)。常見(jiàn)的軟件框架有:MFC、VCL、JDK等等。其具有以下的特點(diǎn)。

*它是一個(gè)功能類的集合,類之間可以相互協(xié)作,為業(yè)務(wù)邏輯子系統(tǒng)提供服務(wù)。

*它包含了具體類和抽象類,這些類定義了標(biāo)準(zhǔn)的接口、對(duì)象間的交互作用和系統(tǒng)的相關(guān)常量。抽象類,可以包含抽象和具體的方法。

*為了利用、自定義或擴(kuò)展框架的服務(wù),通常需要框架的使用者去定義已存在的框架類的子類。

*框架中定義好的類只提供給用戶自定義的類調(diào)用,而從不調(diào)用用戶自己定義的類。

二,框架設(shè)計(jì)

對(duì)于一個(gè)分布式信息系統(tǒng),我們通過(guò)上面的討論,引入了三層的設(shè)計(jì)模型,現(xiàn)在就可以在這個(gè)模型上進(jìn)行系統(tǒng)的框架設(shè)計(jì)了。但是,在開始設(shè)計(jì)之前先明確一下框架設(shè)計(jì)的目標(biāo)。根據(jù)系統(tǒng)要求和框架定義,我們的目標(biāo)為:

*類(組件、代碼)最大化的重用。

*框架結(jié)構(gòu)盡可能合理、簡(jiǎn)單和明了。

*框架要有靈活擴(kuò)展性。滿足用戶的二次開發(fā)要求。

*框架要安全、穩(wěn)定、高效率,可維護(hù),可升級(jí)。

*框架中子系統(tǒng)(包)之間不應(yīng)該存在雙向性依存關(guān)系。

分布式信息系統(tǒng)三層設(shè)計(jì)模型中系統(tǒng)類的類型(Classes-Type)體系結(jié)構(gòu)圖如下所示:

圖(一)

所以此框架設(shè)計(jì)為:

把分布式信息系統(tǒng)的框架總體劃分為四個(gè)主體包,分別為:表示層的用戶界面包(ui),業(yè)務(wù)邏輯層的業(yè)務(wù)對(duì)象包(bs),數(shù)據(jù)持久層的數(shù)據(jù)持久包(ps),系統(tǒng)資源層的通用實(shí)用包(su),結(jié)合公司自己的命名規(guī)范,具體的UML框架圖可為如下所示:

圖(二)

其中,“ProjectName”為信息系統(tǒng)項(xiàng)目的立項(xiàng)英文命名,如:國(guó)有資產(chǎn)管理系統(tǒng),“ProjectName”為“sams”;“CompanyName”為公司的英文簡(jiǎn)稱,如:翱拓系統(tǒng)集成,“CompanyName”為“auto”。

“ui”----用戶界面包(User Interface)。

“bs”----業(yè)務(wù)邏輯包(Business Session)。

“ps”----數(shù)據(jù)持久存儲(chǔ)包(Persistence Store)。

“su”----系統(tǒng)通用實(shí)用包(System Utility)。

下面將結(jié)合J2EE體系結(jié)構(gòu)分別詳細(xì)討論各層包的框架實(shí)現(xiàn)問(wèn)題。

(一)通用系統(tǒng)資源層框架設(shè)計(jì)

通用系統(tǒng)資源層框架設(shè)計(jì),從我們上面定義好框架來(lái)看就是系統(tǒng)通用包su(System Utility)的設(shè)計(jì)。從圖(二)可以看出,ui包、bs包和ps包都是從su包中調(diào)用接口,su包給它們提供服務(wù)。所以本層框架的設(shè)計(jì)是系統(tǒng)能否實(shí)現(xiàn)類(組件)重用的基礎(chǔ),是系統(tǒng)能否滿足可靠穩(wěn)定、高效率和可維護(hù)的關(guān)鍵。

既然是通用包,那么它具體提供哪些服務(wù)(或工具)呢?我們知道J2EE體系結(jié)構(gòu)中也提供了許多標(biāo)準(zhǔn)的服務(wù),如:JMS、EJB、JTA等等。那么su包是否也應(yīng)該提供類似的服務(wù)呢?這些問(wèn)題都沒(méi)有統(tǒng)一的答案,這主要看項(xiàng)目系統(tǒng)分析和設(shè)計(jì)人員根據(jù)項(xiàng)目本身的特點(diǎn)和需求,應(yīng)用什么樣的技術(shù)和解決問(wèn)題所運(yùn)用什么樣的設(shè)計(jì)思想和設(shè)計(jì)模式等因素有關(guān)。

值得一提的是,“框架是骨架,設(shè)計(jì)模式是肉”。設(shè)計(jì)模式思想影響框架的構(gòu)成,一個(gè)框架中應(yīng)用合適的設(shè)計(jì)模式來(lái)實(shí)現(xiàn),才是框架精華的所在。在這一層,常應(yīng)用到的設(shè)計(jì)模式有:結(jié)構(gòu)型的Bridge模式、Facade、Proxy;創(chuàng)建型的Factory、Singleton和行為型的Strategy等。

根據(jù)作者的經(jīng)驗(yàn),結(jié)合J2EE體系結(jié)構(gòu)的應(yīng)用,通用系統(tǒng)資源層的框架可為:

圖(三)

圖(三)說(shuō)明如下:

su包包含8個(gè)子包,分別為:

(1),resource包,包含標(biāo)準(zhǔn)接口訪問(wèn)J2EE中間件(應(yīng)用服務(wù)器)資源的類。如:容器的JNDI服務(wù)等等。

(2),factory包,包含創(chuàng)建不同類型對(duì)象的接口的類,目的是有利于控制類創(chuàng)建,減少一些關(guān)鍵對(duì)象誤用的風(fēng)險(xiǎn)。

(3),jms包,包裝了有關(guān)應(yīng)用J2EE消息服務(wù)的類。

(4),ui包,針對(duì)表示層封裝一些標(biāo)準(zhǔn)通用的類。

(5),ejb包,引用Bridge設(shè)計(jì)模式,在EJB中加多一層封裝,一般以后方便擴(kuò)展和維護(hù)EJB,減少ejb編程的風(fēng)險(xiǎn)。根據(jù)ejb的類型,分session和entity兩個(gè)子包。

(6),db包,包含有關(guān)訪問(wèn)數(shù)據(jù)庫(kù)的類,包括:數(shù)據(jù)庫(kù)連接池、報(bào)表和序列號(hào)等標(biāo)準(zhǔn)接口。

(7),log包,包含記錄體統(tǒng)日志和調(diào)試應(yīng)用的接口類。細(xì)分applog和appdebug兩個(gè)包。

(8),exception包,根據(jù)系統(tǒng)的特性,自定義一套應(yīng)用異常。

(9)tools包,包含了常用標(biāo)準(zhǔn)的系統(tǒng)函數(shù)類。根據(jù)這些函數(shù)的類型,分為:date、maths、format和constfunc四個(gè)包。

以上框架僅為參考,設(shè)計(jì)人員可根據(jù)自己的實(shí)際需要,來(lái)重新定義。

(二)表示層框架設(shè)計(jì)

表示層框架設(shè)計(jì)對(duì)應(yīng)著我們定義的ui包框架設(shè)計(jì)。在針對(duì)J2EE體系結(jié)構(gòu)做系統(tǒng)設(shè)計(jì)時(shí),往往應(yīng)用MVC(Model-View-Controller)設(shè)計(jì)模式來(lái)實(shí)現(xiàn)。MVC模式根據(jù)應(yīng)用的角色對(duì)應(yīng)用進(jìn)行分解,然后使用不同的方法解決。

*Model,模型,系統(tǒng)應(yīng)用的具體數(shù)據(jù)模型,不關(guān)心怎么表示和何時(shí)訪問(wèn)。只考慮數(shù)據(jù)的完整性和存儲(chǔ)方式。與數(shù)據(jù)持久層對(duì)應(yīng),所以是我們數(shù)據(jù)持久層框架設(shè)計(jì)所關(guān)心的問(wèn)題。

*View,視圖,只關(guān)系如何表示的問(wèn)題。本層討論。

*Controller,控制器,控制器是解決何時(shí)訪問(wèn)的問(wèn)題。是系統(tǒng)應(yīng)用的業(yè)務(wù)邏輯,確定是否滿足一定條件時(shí),應(yīng)用程序才能訪問(wèn)模型(Model)中的特定數(shù)據(jù),然后根據(jù)情況把取得的具體數(shù)據(jù)委托給負(fù)責(zé)表示的視圖(View)。與業(yè)務(wù)邏輯層對(duì)應(yīng),在業(yè)務(wù)邏輯層框架設(shè)計(jì)中討論。

在J2EE體系中,AWT、SWING、JSP和Servlet都是針對(duì)表示(視圖)而設(shè)計(jì)的。在實(shí)際應(yīng)用中,我們經(jīng)常根據(jù)系統(tǒng)不同的功能模塊寫JSP和APP客戶端應(yīng)用程序來(lái)和用戶交互,所以在框架定義中可分為兩個(gè)包,jsp包和app包;同時(shí),有時(shí)候還需要定義一些系統(tǒng)常量和處理一些頁(yè)面邏輯,所以我們也定義一個(gè)vbn(view bean)包來(lái)存放這些頁(yè)面類和常量類。所以表示層的框架設(shè)計(jì)可為:

圖(四)

圖(四)說(shuō)明如下:

(1)jsp包,按信息系統(tǒng)不同的功能模塊存放jsp程序文件。由于jsp文件類型不是java文件類型,所以此包可以當(dāng)作目錄處理,把其提出來(lái),按照系統(tǒng)部署的要求,單獨(dú)放在一個(gè)合理的目錄下。其中JFunctionModule1、JfunctionModule2、JfunctionModule3等名稱為信息系統(tǒng)具體的功能模塊名稱??筛鶕?jù)需要來(lái)定義和安排目錄。

(2)app包,存放java客戶端應(yīng)用程序。其中AFunctionModule1、AfunctionModule2、AfunctionModule3等包名稱為信息系統(tǒng)具體的功能模塊包名稱。根據(jù)客戶端應(yīng)用程序的所屬關(guān)系,存放到具體的功能模塊包中。

(3)vbn包,存放信息系統(tǒng)表示層的常量定義類和頁(yè)面處理類。

最后,值得一提的是:在表示層的jsp頁(yè)面開發(fā)中,為了避免把太多的代碼和邏輯編寫在同一個(gè)頁(yè)碼中,提高jsp程序的效率和可維護(hù)性,可以應(yīng)用VC(View-Controller)設(shè)計(jì)模式,html為視圖,servlet為控制器。當(dāng)然還可以應(yīng)用struts技術(shù)來(lái)實(shí)現(xiàn),這里就不在討論了。這應(yīng)該屬于具體的程序設(shè)計(jì)問(wèn)題。

(三)業(yè)務(wù)邏輯層框架設(shè)計(jì)

業(yè)務(wù)邏輯層設(shè)計(jì)對(duì)應(yīng)我們定義bs包的框架設(shè)計(jì)。是MVC模式的Controller(控制器),負(fù)責(zé)訪問(wèn)數(shù)據(jù)持久層,把返回?cái)?shù)據(jù)提交給表示層,起到承上啟下的作用。J2EE體系結(jié)構(gòu)中,我們一般應(yīng)用會(huì)話Bean來(lái)實(shí)現(xiàn)。

業(yè)務(wù)邏輯層設(shè)計(jì)在系統(tǒng)設(shè)計(jì)的詳細(xì)設(shè)計(jì)中是最為復(fù)雜,工作量對(duì)大的一塊。需要從系統(tǒng)分析中提取信息系統(tǒng)各個(gè)功能模塊的用例(Use Case),再針對(duì)每個(gè)用例,應(yīng)用UML語(yǔ)言詳細(xì)繪畫出此用例的順序圖(或協(xié)作圖),然后根據(jù)實(shí)際情況決定是否使用有狀態(tài)還是無(wú)狀態(tài)的會(huì)話Bean。但是,此層的的框架設(shè)計(jì)卻簡(jiǎn)單明了,其框架可為:

圖(五)

在bs包下直接根據(jù)信息系統(tǒng)的功能模塊的名稱來(lái)定義子包。其中,bsFunctionModule為功能模塊的英文名稱。

(四)數(shù)據(jù)持久層框架設(shè)計(jì)

數(shù)據(jù)持久層對(duì)應(yīng)MVC設(shè)計(jì)模型中的Model,其設(shè)計(jì)是信息系統(tǒng)設(shè)計(jì)的最重要部分,是系統(tǒng)的性能和是否可平移的基礎(chǔ),其設(shè)計(jì)好壞直接影響到項(xiàng)目的成功與否。數(shù)據(jù)持久層框架設(shè)計(jì)只有詳細(xì)討論數(shù)據(jù)模型設(shè)計(jì)后,才能比較好勾畫出來(lái)。故本節(jié)準(zhǔn)備探討持久數(shù)據(jù)模型設(shè)計(jì)后,再實(shí)現(xiàn)其框架設(shè)計(jì)。

常見(jiàn)數(shù)據(jù)持久層設(shè)計(jì)類型

(A)在業(yè)務(wù)邏輯層的類中,直接使用SQL代碼。如下圖所示:

圖(六)

*優(yōu)點(diǎn):

寫代碼的效率很高。

*缺點(diǎn):

SQL代碼到處出現(xiàn)在程序的類中;邏輯業(yè)務(wù)類與數(shù)據(jù)庫(kù)直接耦合在一起,這意味著任何小的改動(dòng)都導(dǎo)致程序原代碼的修改。

  *結(jié)論:

對(duì)于小型應(yīng)用程序是可行的,對(duì)于企業(yè)級(jí)的系統(tǒng),這種在邏輯業(yè)務(wù)類中寫死SQL的方法,會(huì)導(dǎo)致代碼難于維護(hù)和擴(kuò)展。

(B)SQL代碼封裝在一個(gè)或多個(gè)數(shù)據(jù)代理類中。如下圖所示:

圖(七)

*優(yōu)點(diǎn):

在業(yè)務(wù)類和數(shù)據(jù)庫(kù)之間加多一層封裝,是系統(tǒng)的可維護(hù)性大為提高。這種方法包括可以利用數(shù)據(jù)庫(kù)存儲(chǔ)過(guò)程、SQLJ以及微軟ADO數(shù)據(jù)訪問(wèn)的策略。

*缺點(diǎn):

對(duì)數(shù)據(jù)庫(kù)進(jìn)行任何一點(diǎn)的改動(dòng)都會(huì)直接影響到數(shù)據(jù)代理的代碼,也就是程序原代碼還必須改動(dòng)。

(C)不用寫SQL代碼,對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)完全通過(guò)具有魯棒性數(shù)據(jù)持久層來(lái)實(shí)現(xiàn)。如圖所示:

圖(八)

所謂的魯棒性數(shù)據(jù)持久層至少要滿足下面的條件:

(1),支持關(guān)系數(shù)據(jù)庫(kù)的高級(jí)的特性。(如:事務(wù)、存儲(chǔ)過(guò)程、游標(biāo))

(2),支持對(duì)象和關(guān)系之間的映射,用戶不直接用SQL與數(shù)據(jù)庫(kù)交互。

(3),支持多連接,支持?jǐn)?shù)據(jù)庫(kù)連接池。

(4),支持多種體系結(jié)構(gòu),支持不同廠商的數(shù)據(jù)庫(kù)。

*優(yōu)點(diǎn):

應(yīng)用程序開發(fā)人員不需要了解數(shù)據(jù)庫(kù)結(jié)構(gòu),甚至也沒(méi)必要知道對(duì)象如何保存在數(shù)據(jù)庫(kù)的。有利于組織開發(fā)大規(guī)模的針對(duì)關(guān)鍵業(yè)務(wù)的信息系統(tǒng)。系統(tǒng)的遷植性、可維護(hù)性和擴(kuò)展性好。

*缺點(diǎn):

由于對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)交給了持久層處理,理論上對(duì)系統(tǒng)的性能上有些影響。

具體選型

上面列出了常見(jiàn)的數(shù)據(jù)持久層的幾種類型,那么我們究竟應(yīng)用那種類型比較合適呢?這需要根據(jù)系統(tǒng)規(guī)模和需要的具體情況來(lái)決定。在J2EE體系結(jié)構(gòu)中開發(fā)系統(tǒng),我們應(yīng)該選擇(B)和(C)兩種數(shù)據(jù)持久層比較合適。

在J2EE體系結(jié)構(gòu)中,類型(C)魯棒性數(shù)據(jù)持久層可以應(yīng)用EJB的容器管理實(shí)體Bean(CMP)來(lái)實(shí)現(xiàn),在EJB2.X中CMP就是為了實(shí)現(xiàn)魯棒性數(shù)據(jù)持久層而制定的標(biāo)準(zhǔn)規(guī)范。開發(fā)人員不必在CMP中編寫SQL代碼,一切和數(shù)據(jù)庫(kù)的交互都交給EJB容器去負(fù)責(zé)。由于J2EE是開放、標(biāo)準(zhǔn)規(guī)范,所以,CMP組件可以在EJB容器與數(shù)據(jù)庫(kù)之間移植。

在實(shí)際的信息系統(tǒng)開發(fā)過(guò)程中,我們往往需要處理一些復(fù)雜的查詢或報(bào)表,而這些查詢數(shù)據(jù)往往來(lái)源于多個(gè)數(shù)據(jù)表,而且其查詢結(jié)果的實(shí)體對(duì)象的觀念性不強(qiáng)。這個(gè)時(shí)候,我們用CMP去封裝它就顯得有點(diǎn)無(wú)能為力了。因?yàn)槔碚撋蠈?shí)體Bean畢竟代表了數(shù)據(jù)庫(kù)表里面的一行數(shù)據(jù)。

遇到這種情形,數(shù)據(jù)持久層的設(shè)計(jì)采用類型(B)就比較合適了。我們可以用EJB的無(wú)狀態(tài)會(huì)話Bean來(lái)實(shí)現(xiàn)這層的封裝。通常的利用Bridge設(shè)計(jì)模式來(lái)實(shí)現(xiàn):

(1)建立數(shù)據(jù)訪問(wèn)對(duì)象DAO(Data Access Object)接口。定義數(shù)據(jù)源的抽象操作行為,提供方便訪問(wèn)和維護(hù)數(shù)據(jù)的標(biāo)準(zhǔn)API結(jié)構(gòu)。

(2)實(shí)現(xiàn)數(shù)據(jù)訪問(wèn)對(duì)象接口。DAOImplementor。實(shí)現(xiàn)具體DAO接口的內(nèi)容,根據(jù)應(yīng)用的數(shù)據(jù)源類型不同,可以有針對(duì)多個(gè)數(shù)據(jù)源的實(shí)現(xiàn)(如:DAOImplementorSQLServer,DAOImplentorOracle等等)。然后應(yīng)用Adapter設(shè)計(jì)模式,將特定的數(shù)據(jù)源驅(qū)動(dòng)接口分配到DAO中去。

(3)建立EJB調(diào)用DAOImplementor,實(shí)現(xiàn)業(yè)務(wù)邏輯。

如下圖所示:

圖(九)

框架設(shè)計(jì)

通過(guò),上面的討論,我們數(shù)據(jù)持久層(ps)包的框架可為:

圖(十)

ps包下按信息系統(tǒng)的功能模塊來(lái)劃分子包(如:上圖分了3個(gè)功能模塊包,PfunctionModule1、PfunctionModule2和PfunctionModule3),每個(gè)功能模塊包再分:

be(business entity)包,包含業(yè)務(wù)實(shí)體對(duì)象(數(shù)據(jù)庫(kù)關(guān)系映射對(duì)象),DAO定義接口等等。

eb(entity bean)包,包含實(shí)現(xiàn)數(shù)據(jù)持久層的實(shí)體組件。

sb(session bean)包,包含實(shí)現(xiàn)數(shù)據(jù)持久層的會(huì)話組件。

三,概述

系統(tǒng)框架設(shè)計(jì)不是一成不變的,往往根據(jù)系統(tǒng)設(shè)計(jì)師的對(duì)某個(gè)信息系統(tǒng)的見(jiàn)解不同,框架也有所差別。但是要設(shè)計(jì)一個(gè)好的框架,除了有明確的設(shè)計(jì)目標(biāo)外,關(guān)鍵在于:需要調(diào)查和研究系統(tǒng)同類產(chǎn)品的狀況及相關(guān)的技術(shù)特點(diǎn),了解目前流行技術(shù)對(duì)此產(chǎn)品所能提供理論和技術(shù)支持情況,結(jié)合自己產(chǎn)品的特點(diǎn),才能逐步勾畫出整個(gè)產(chǎn)品項(xiàng)目的框架藍(lán)圖。

看完上述內(nèi)容,你們對(duì)如何實(shí)現(xiàn)J2EE分布式系統(tǒng)框架設(shè)計(jì)有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。

當(dāng)前題目:如何實(shí)現(xiàn)J2EE分布式系統(tǒng)框架設(shè)計(jì)
URL地址:http://muchs.cn/article46/jcpihg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)響應(yīng)式網(wǎng)站、域名注冊(cè)、搜索引擎優(yōu)化、網(wǎng)站改版

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司