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

        ?

        全國(guó)中小學(xué)教育技術(shù)裝備網(wǎng)絡(luò)管理系統(tǒng)研發(fā)技術(shù)報(bào)告(三)

        2006-12-31 00:00:00唐華云張瑞華馮石寶
        中國(guó)教育技術(shù)裝備 2006年12期

        3 系統(tǒng)構(gòu)架與分層設(shè)計(jì)

        3.1 總體技術(shù)構(gòu)架

        軟件系統(tǒng)的構(gòu)架猶如建筑設(shè)計(jì)構(gòu)架一樣,是科學(xué)與藝術(shù)的結(jié)合,更是實(shí)際經(jīng)驗(yàn)的不斷總結(jié)。構(gòu)架的優(yōu)劣從根本上決定了軟件產(chǎn)品的穩(wěn)定性、擴(kuò)展性、柔韌性、有效性,所以軟件系統(tǒng)的總體技術(shù)構(gòu)架就如骨架是支持任何系統(tǒng)的基礎(chǔ)。

        構(gòu)架(Architecture,原意為建筑學(xué)設(shè)計(jì)藝術(shù)與科學(xué))在RUP中的定義:軟件系統(tǒng)的構(gòu)架(在某一給定點(diǎn))是指系統(tǒng)重要構(gòu)件的組織或結(jié)構(gòu),這些重要構(gòu)件通過(guò)接口與不斷減小的構(gòu)件與接口所組成的構(gòu)件進(jìn)行交互;構(gòu)架是系統(tǒng)在其所處環(huán)境中的最高層次的概念。軟件系統(tǒng)的構(gòu)架是通過(guò)接口交互的重要構(gòu)件(在特定時(shí)間點(diǎn))的組織或結(jié)構(gòu),這些構(gòu)件又由一些更小的構(gòu)件和接口組成。構(gòu)架的描述方式:“4+1”視圖(用例視圖、設(shè)計(jì)視圖、實(shí)現(xiàn)視圖、過(guò)程視圖、配置視圖)是一個(gè)被廣為使用的構(gòu)架描述的模型。

        層(layer):對(duì)模型中同一抽象層次上的包進(jìn)行分組的一種特定方式。通過(guò)分層,從邏輯上將子系統(tǒng)劃分成許多集合,而層間關(guān)系的形成要遵循一定的規(guī)則。通過(guò)分層,可以限制子系統(tǒng)間的依賴關(guān)系,使系統(tǒng)以更松散的方式耦合,從而更易于維護(hù)。系統(tǒng)分層的幾種常用方法:

        1) 常用三層服務(wù):用戶層、業(yè)務(wù)邏輯層、數(shù)據(jù)層;

        2) 多層結(jié)構(gòu)的技術(shù)組成模型:表現(xiàn)層、中間層、數(shù)據(jù)層;

        3) RUP典型分層方法:應(yīng)用層、專業(yè)業(yè)務(wù)層、中間件層、系統(tǒng)軟件層;

        4) 基于J2EE的B/S模式:表現(xiàn)View層、業(yè)務(wù)邏輯層、服務(wù)接口層、數(shù)據(jù)持久層。

        結(jié)構(gòu):軟件構(gòu)架是多種結(jié)構(gòu)的體現(xiàn),結(jié)構(gòu)是系統(tǒng)構(gòu)架從不同角度觀察所產(chǎn)生的視圖。就像建筑物的結(jié)構(gòu)會(huì)隨著觀察動(dòng)機(jī)和出發(fā)點(diǎn)的不同而有多種含義一樣,軟件構(gòu)架也表現(xiàn)為多種結(jié)構(gòu)。常見的軟件結(jié)構(gòu)有:模塊結(jié)構(gòu)、邏輯或概念結(jié)構(gòu)、進(jìn)程或協(xié)調(diào)結(jié)構(gòu)、物理結(jié)構(gòu)、使用結(jié)構(gòu)、調(diào)用結(jié)構(gòu)、數(shù)據(jù)流、控制流、類結(jié)構(gòu)等等。

        以下就SOA(面向服務(wù)的構(gòu)架)技術(shù)、基于J2EE分層的表現(xiàn)層框架、業(yè)務(wù)邏輯層框架、數(shù)據(jù)持久層框架技術(shù)分別予以簡(jiǎn)要分析和說(shuō)明,然后給出本系統(tǒng)基于SOA面向服務(wù)的構(gòu)架和多層體系結(jié)構(gòu)。

        SOA(英文Service-Oriented Architecture),即面向服務(wù)架構(gòu)的縮寫。簡(jiǎn)單來(lái)說(shuō),SOA就是一種進(jìn)行系統(tǒng)開發(fā)的新的體系架構(gòu),在基于SOA架構(gòu)的系統(tǒng)中,具體應(yīng)用程序的功能是由一些松耦合并且具有統(tǒng)一接口定義方式的組件(也就是service)組合構(gòu)建起來(lái)的。本質(zhì)上說(shuō),SOA體現(xiàn)的是一種新的系統(tǒng)架構(gòu),新的構(gòu)架理念。SOA一切以\"服務(wù)\"為中心,完全拋棄了具體的編程的技術(shù)、環(huán)境、平臺(tái)等因素的限制,使得開發(fā)企業(yè)能有效利用原有的系統(tǒng)和數(shù)據(jù),更易于集成和管理業(yè)務(wù)系統(tǒng)的復(fù)雜性并顯著地減少系統(tǒng)開發(fā)和集成的成本。

        以下給出本系統(tǒng)基于SOA的面向服務(wù)的體系結(jié)構(gòu)構(gòu)架圖:

        如上圖所示,系統(tǒng)的整體構(gòu)架大致可以劃分為學(xué)校端、區(qū)縣端、省市端以及客戶服務(wù)中心端四個(gè)松散耦合的子系統(tǒng)。整個(gè)系統(tǒng)構(gòu)架于SOA基礎(chǔ)上(用WEB SERVICE技術(shù)實(shí)現(xiàn)SOA構(gòu)架),各個(gè)子系統(tǒng)之間的數(shù)據(jù)傳輸與交換是通過(guò)基于XML的Web Service服務(wù)來(lái)實(shí)現(xiàn)的。各系統(tǒng)互不干擾、互相獨(dú)立又互相協(xié)作,SOA技術(shù)使得整個(gè)體系結(jié)構(gòu)更具擴(kuò)展性、靈活性、平臺(tái)無(wú)關(guān)性和柔韌性。SOA解決了本系統(tǒng)的整體體系構(gòu)架,那么接下來(lái)我們簡(jiǎn)要分析一下實(shí)現(xiàn)系統(tǒng)的整體分層結(jié)構(gòu)和相關(guān)的框架支持技術(shù)。

        3.2基于J2EE的多層結(jié)構(gòu)設(shè)計(jì)

        高質(zhì)量的J2EE/Java EE系統(tǒng)標(biāo)準(zhǔn)實(shí)際就是OO設(shè)計(jì)的標(biāo)準(zhǔn),松耦合是OO設(shè)計(jì)的主要追求目標(biāo)之一,那么無(wú)疑解耦性成為衡量J2EE/JEE質(zhì)量的首要標(biāo)準(zhǔn)。實(shí)際選擇中,還需要兼顧可伸縮性/性能/開發(fā)效率等方面綜合考慮。典型的J2EE/Java EE至少劃分三個(gè)層次:表現(xiàn)層/業(yè)務(wù)邏輯組件層/持久層:

        3.2.1表現(xiàn)層框架

        表現(xiàn)層主要的功能和任務(wù)是復(fù)雜與客戶的GUI頁(yè)面交互,請(qǐng)求的提交和應(yīng)答。表現(xiàn)層技術(shù)框架比較成熟的是基于MVC模式的STRUTS、WebWork、JSF等組件技術(shù)。借用MVC設(shè)計(jì)思想,實(shí)現(xiàn)顯示(VIEW)、業(yè)務(wù)處理(MODEL)、控制(CONTROLLER)三層分離,獨(dú)立實(shí)現(xiàn),減少模塊的關(guān)聯(lián),實(shí)現(xiàn)高內(nèi)聚。MVC三層結(jié)構(gòu)如下圖:

        典型的,表現(xiàn)層業(yè)務(wù)邏輯流程大致可以分為:客戶(Client)通過(guò)GUI頁(yè)面發(fā)出業(yè)務(wù)請(qǐng)求->STRUTS控制層獲取客戶請(qǐng)求,調(diào)用->Request Processor處理客戶情況->ACTION獲取客戶提交表單并調(diào)用業(yè)務(wù)邏輯接口'業(yè)務(wù)代理處理業(yè)務(wù)邏輯->處理結(jié)果返回給ACTION->通過(guò)STRUTS控制層返回客戶頁(yè)面->View客戶端顯示請(qǐng)求結(jié)果。具體處理序列如(上頁(yè))圖:

        MVC模式的優(yōu)點(diǎn):

        (1) 可以為一個(gè)模型在運(yùn)行時(shí)同時(shí)建立和使用多個(gè)視圖。變化-傳播機(jī)制可以確保所有相關(guān)的視圖及時(shí)得到模型數(shù)據(jù)變化,從而使所有關(guān)聯(lián)的視圖和控制器做到行為同步。

        (2) 視圖與控制器的可接插性,允許更換視圖和控制器對(duì)象,而且可以根據(jù)需求動(dòng)態(tài)的打開或關(guān)閉、甚至在運(yùn)行期間進(jìn)行對(duì)象替換。

        (3) 模型的可移植性。因?yàn)槟P褪仟?dú)立于視圖的,所以可以把一個(gè)模型獨(dú)立地移植到新的平臺(tái)工作。需要做的只是在新平臺(tái)上對(duì)視圖和控制器進(jìn)行新的修改。

        (4) 層次清晰。實(shí)現(xiàn)了業(yè)務(wù)邏輯與視圖的分離,加速開發(fā)速度,降低系統(tǒng)復(fù)雜度和成本。

        3.2.2業(yè)務(wù)邏輯層框架

        業(yè)務(wù)邏輯層是整個(gè)系統(tǒng)的核心,它是整個(gè)系統(tǒng)的業(yè)務(wù)(領(lǐng)域)的邏輯計(jì)算和處理中心,是表現(xiàn)層業(yè)務(wù)服務(wù)的提供者和數(shù)據(jù)持久層功能的使用者。業(yè)務(wù)邏輯層框架的構(gòu)建應(yīng)該考慮其可伸縮性、靈活性、定制性、透明性、快速構(gòu)建性等指標(biāo)。現(xiàn)在主流的開源業(yè)務(wù)組件框架主要有EJB2/EJB3、Spring Framework 、Jdon Framework:

        通過(guò)對(duì)以上組件框架技術(shù)的分析,Spring Framework自從推出以來(lái)使用非常廣泛,備受推崇。

        參考圖3-4框架結(jié)構(gòu)分析:Spring框架包含許多特性,并被很好地組織如上圖所示的七個(gè)模塊中:

        Core 封裝包是框架的最基礎(chǔ)部分,提供IoC和依賴注入特性。

        構(gòu)建于Core封裝包基礎(chǔ)上的 Context封裝包,提供了一種框架式的對(duì)象訪問(wèn)方法,有些象JNDI注冊(cè)器。

        DAO 提供了JDBC的抽象層,它可消除冗長(zhǎng)的JDBC編碼和解析數(shù)據(jù)庫(kù)廠商特有的錯(cuò)誤代碼。 并且,JDBC 封裝包還提供了一種比編程性更好的聲明性事務(wù)管理方法,不僅僅是實(shí)現(xiàn)了特定接口,而且對(duì)所有的POJOs(plain old Java objects)都適用。

        ORM 封裝包提供了常用的\"對(duì)象/關(guān)系\"映射APIs的集成層。 其中包括JPA、JDO、Hibernate 和 iBatis 。利用ORM封裝包,可以混合使用所有Spring提供的特性進(jìn)行\(zhòng)"對(duì)象/關(guān)系\"映射,如前邊提到的簡(jiǎn)單聲明性事務(wù)管理。

        Spring的 AOP 封裝包提供了符合 AOP Alliance規(guī)范的面向方面的編程(aspect-oriented programming)實(shí)現(xiàn),讓你可以定義,例如方法攔截器(method-interceptors)和切點(diǎn)(pointcuts),從邏輯上講,從而減弱代碼的功能耦合,清晰的被分離開。

        Spring中的 Web 包提供了基礎(chǔ)的針對(duì)Web開發(fā)的集成特性,例如多方文件上傳,利用Servlet listeners進(jìn)行IoC容器初始化和針對(duì)Web的application context。

        Spring中的 MVC 封裝包提供了Web應(yīng)用的Model-View-Controller(MVC)實(shí)現(xiàn)。Spring的MVC框架并不是僅僅提供一種傳統(tǒng)的實(shí)現(xiàn),它提供了一種 清晰的 分離模型,在領(lǐng)域模型代碼和web form之間。并且,還可以借助Spring框架的其他特性。

        3.2.3持久層框架

        數(shù)據(jù)持久層位于領(lǐng)域?qū)雍突A(chǔ)架構(gòu)層之間。由于對(duì)象范例和關(guān)系范例這兩大領(lǐng)域之間存在\"阻抗不匹配\",所以把數(shù)據(jù)持久層單獨(dú)作為J2EE體系的一個(gè)層提出來(lái)的原因就是能夠在對(duì)象-關(guān)系數(shù)據(jù)庫(kù)之間提供一個(gè)成功的企業(yè)級(jí)映射解決方案,盡最大可能彌補(bǔ)這兩種范例之間的差異。

        數(shù)據(jù)持久層的實(shí)現(xiàn)技術(shù)主要有:1、JDBC許多開發(fā)者用JDBC進(jìn)行數(shù)據(jù)庫(kù)程序的開發(fā)。這種方式很多情況下都使用DAO模式,采用SQL進(jìn)行查詢。雖然用此方式可以使應(yīng)用程序代碼與具體的數(shù)據(jù)庫(kù)廠商和數(shù)據(jù)庫(kù)位置無(wú)關(guān),不過(guò)JDBC是低級(jí)別的數(shù)據(jù)庫(kù)訪問(wèn)方式,JDBC并不支持面向?qū)ο蟮臄?shù)據(jù)庫(kù)表示。JDBC數(shù)據(jù)庫(kù)表示完全圍繞關(guān)系數(shù)據(jù)庫(kù)模型。在大型應(yīng)用程序的DAO中書寫這樣的代碼,維護(hù)量是非常大的。2、EJB 在J2EE的規(guī)范中,為EJB定義了兩種持久化的解決方案:一種是BMP,另一種是CMP。其中CMP不需要將SQL語(yǔ)句加入到代碼中。目前,在采用J2EE的應(yīng)用中,EJB CMP方式得到了廣泛應(yīng)用。更加引人注意的是,隨著EJB規(guī)范的發(fā)展,CMP也包含了一些高級(jí)關(guān)系的內(nèi)容。但是,CMP的使用比較復(fù)雜,對(duì)很多開發(fā)人員來(lái)說(shuō)比較難以掌握。而且,不是在所有的情況下都適合在系統(tǒng)中采用EJB,而且想要非常清楚的了解EJB規(guī)范也是非常費(fèi)時(shí)的。在用EJB編碼前,先要讓專家理解API,然后需要了解每一個(gè)容器部署時(shí)所要關(guān)注的技術(shù)。此外,許多情況下商用容器的性能和支持也不是很好。3、Hibernate是一個(gè)開放源代碼的對(duì)象關(guān)系映射框架,它對(duì)JDBC進(jìn)行了輕量級(jí)的對(duì)象封裝,使Java程序員可以隨心所欲的使用對(duì)象編程思維來(lái)操縱數(shù)據(jù)庫(kù)。它不僅提供了從Java類到數(shù)據(jù)表之間的映射,也提供了數(shù)據(jù)查詢和恢復(fù)機(jī)制。相對(duì)于使用JDBC和SQL來(lái)手工操作數(shù)據(jù)庫(kù), Hibernate可以大大減少操作數(shù)據(jù)庫(kù)的工作量。 另外Hibernate可以利用代理模式來(lái)簡(jiǎn)化載入類的過(guò)程,這將大大減少利用。Hibernate QL從數(shù)據(jù)庫(kù)提取數(shù)據(jù)的代碼的編寫量,從而節(jié)約開發(fā)時(shí)間和開發(fā)成本。Hibernate可以和多種Web服務(wù)器或者應(yīng)用服務(wù)器良好集成,如今已經(jīng)支持幾乎所有的流行的數(shù)據(jù)庫(kù)服務(wù)器。

        通過(guò)以上持久層技術(shù)的對(duì)比分析,可以總結(jié):Hibernate是一個(gè)功能強(qiáng)大,可以有效地進(jìn)行數(shù)據(jù)庫(kù)數(shù)據(jù)到業(yè)務(wù)對(duì)象的O/R映射方案。Hibernate推動(dòng)了基于普通Java對(duì)象模型,用于映射底層數(shù)據(jù)結(jié)構(gòu)的持久對(duì)象的開發(fā),通過(guò)將持久層的生成自動(dòng)擴(kuò)展到一個(gè)更大的范圍,Hibernate 使開發(fā)人員專心實(shí)現(xiàn)業(yè)務(wù)邏輯而不用分心于繁瑣的數(shù)據(jù)庫(kù)方面的邏輯,同時(shí)提供了更加合理的模塊劃分的方法,可以大大減少操作數(shù)據(jù)庫(kù)的工作量,節(jié)約開發(fā)時(shí)間和成本。

        2.4系統(tǒng)的總體分層結(jié)構(gòu)圖

        通過(guò)對(duì)系統(tǒng)的層次拆分以及對(duì)各層應(yīng)用框架技術(shù)的對(duì)比分析,可以歸納總結(jié)出本系統(tǒng)基于J2EE的多層結(jié)構(gòu),如下圖示:

        參考上述分層結(jié)構(gòu)圖,系統(tǒng)在表現(xiàn)層采用了基于MVC構(gòu)架的STRUTS框架,在業(yè)務(wù)邏輯層采用了時(shí)下比較流行的Spring技術(shù)框架,在數(shù)據(jù)持久層采用了對(duì)象關(guān)系映射框架Hibernate。從整體分層結(jié)構(gòu)來(lái)看各層層次分明、責(zé)職清晰,為構(gòu)建擴(kuò)展性強(qiáng)、靈活度高、復(fù)用性好的系統(tǒng)提供了實(shí)現(xiàn)基礎(chǔ)。

        至此,本文介紹和分析了基于SOA面向服務(wù)的體系構(gòu)架和基于J2EE的整體分層結(jié)構(gòu)技術(shù),從整體業(yè)務(wù)模型到整體構(gòu)架、分層設(shè)計(jì)都給出了解決問(wèn)題的方法途徑。接下來(lái)的篇幅本文將著重介紹實(shí)現(xiàn)系統(tǒng)的具體技術(shù)流程和算法設(shè)計(jì)。

        久久久精品2019免费观看| 99精品国产在热久久| 乱码一二三入区口| 亚洲香蕉毛片久久网站老妇人| 青青草成人免费播放视频| 国产午夜视频在线观看免费| 99久久久国产精品免费蜜臀| 亚洲熟妇av乱码在线观看| 粉嫩小泬无遮挡久久久久久| 国产麻豆一区二区三区在| 99无码熟妇丰满人妻啪啪| 久久亚洲精品无码va大香大香| 婷婷五月亚洲综合图区| 中文字幕人乱码中文字幕乱码在线| 小雪好紧好滑好湿好爽视频| 一本大道久久东京热无码av| 蜜桃一区二区三区在线看| 性色国产成人久久久精品二区三区 | 午夜精品久久久| 亚洲视频一区二区三区免费| 国产精品一区二区三区免费视频| 十八18禁国产精品www| 亚洲A∨无码国产精品久久网| 97激情在线视频五月天视频| 国产免费牲交视频| 亚洲av无码av日韩av网站| 亚洲人成18禁网站| 久久精品亚洲一区二区三区画质 | 国产高潮刺激叫喊视频| 9久久精品视香蕉蕉| 亚洲乱码av中文一区二区第八页| 国产精品毛片va一区二区三区| 国产乱人伦偷精品视频| 天堂网av在线| 中文字幕有码人妻在线| 爽爽精品dvd蜜桃成熟时电影院| 中文字幕久无码免费久久| 精品人妻av区二区三区| 加勒比hezyo黑人专区| 欧美亚洲国产精品久久高清| av天堂吧手机版在线观看|