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

        ?

        基于云端的面向構(gòu)件開發(fā)的企業(yè)軟件架構(gòu)

        2018-06-13 06:52:06李正權(quán)
        現(xiàn)代計算機(jī) 2018年14期
        關(guān)鍵詞:云端代碼構(gòu)件

        李正權(quán)

        (廣東省科技基礎(chǔ)條件平臺中心,廣州 510033)

        0 引言

        隨著互聯(lián)網(wǎng)的興起,人們對軟件應(yīng)用、企業(yè)應(yīng)用的不再是片面和簡單的認(rèn)識;因此現(xiàn)今企業(yè)應(yīng)用大部分都是復(fù)雜多變的,并且還帶有各種不同企業(yè)文化的個性化要求,例如OA、CRM、ERP等,雖然網(wǎng)上很多通用型產(chǎn)品,但很大的場景還是針對不同的企業(yè)進(jìn)行個性化的定制,那么如何更有效地應(yīng)對市場上這類需求,正是現(xiàn)在所提出的云端面向構(gòu)件開發(fā)(以下簡稱云構(gòu)件)的模式所解決的問題。

        1 基本開發(fā)流程

        圖1為云構(gòu)件平臺的開發(fā)流程;與傳統(tǒng)的開發(fā)模式相似,以傳統(tǒng)的軟件定制模式為切入點,使用數(shù)據(jù)庫驅(qū)動為主,但它并不依賴如Eclipse、IDEA這樣開發(fā)工具,它的載體是瀏覽器;它是具備面向構(gòu)件模式(具有高可重用性的特性)和云端部署(有效地體現(xiàn)共享模式和實時發(fā)布)。

        2 具體方案設(shè)計

        2.1 面向構(gòu)件開發(fā)

        (1)構(gòu)件的實現(xiàn)

        構(gòu)件是整個架構(gòu)的主要部分,是一種把代碼包裝成一個個粒度極少的組件,每個組件會完成一個微少的功能,不同組件的組合,就可以完成一個完整的業(yè)務(wù)功能,然后又可以被重新使用,轉(zhuǎn)化為一個更大粒度的組件;因此它具有高的可重用性;構(gòu)件主要有三種表現(xiàn)形式,分別是預(yù)編譯的構(gòu)件、動態(tài)編譯的構(gòu)件,還有兩者混合組成的構(gòu)件。

        圖1 開發(fā)流程圖示

        ①預(yù)編譯的構(gòu)件

        就是指預(yù)先編譯好的代碼(下面以Java為例,編譯后會產(chǎn)生class文件),其本質(zhì)上是一個函數(shù),有標(biāo)準(zhǔn)的入口和出口參數(shù),如下代碼:

        這是一個簡單Java函數(shù),功能是把兩個字符串合成一個字符串;象這類函數(shù),我們編譯好class文件后,傳統(tǒng)的開發(fā)模式是放到開發(fā)環(huán)意下就能直接使用;

        但在云模式中,我們要像在開發(fā)環(huán)境一樣地使用它,就得先讓使用者知道它放在哪里和怎么使用,因此需要預(yù)先登記這個函數(shù)的信息,并保存進(jìn)容器中(如數(shù)據(jù)庫),如圖2。

        圖2 構(gòu)件發(fā)布

        被成功登記并發(fā)布后就會形成我們所說的構(gòu)件;通過上述的配置,使用者就能夠通過代碼(上圖中為join)在云端找到這個函數(shù),并在自已的設(shè)計業(yè)務(wù)中使用,而云端也能夠獲取使用這個構(gòu)件的方法,并且可以利用Java反射機(jī)制設(shè)置它的入?yún)?,?zhí)行它,得到回參。

        ②動態(tài)編譯的構(gòu)件

        預(yù)編譯的構(gòu)件存在一定的限制,依賴用戶開發(fā)環(huán)境進(jìn)行編譯,最后打包到平臺上才能使用,嚴(yán)格來說,這種方式還不是真正的云端開發(fā)所使用的模式,這種構(gòu)件比較適合一些不經(jīng)常修改的功能,例如郵件發(fā)送、短信發(fā)送、數(shù)據(jù)表的增刪改等操作;但實際使用中有很大一部分是需要靈活編寫的,這種代碼需要實時進(jìn)行修改并實時發(fā)布使用,例如查詢條件、變量設(shè)置等;這時候我們需要一個能支撐代碼動態(tài)執(zhí)行的環(huán)境,使用腳本引擎是一個不錯的選擇,例如Java8自帶的Java-Script,使用Java編寫的Groovy,還有Python等也是一個很好的選擇;如圖3。

        圖3 構(gòu)件發(fā)布

        同樣地,我們需要保存這些代碼進(jìn)容器中(如數(shù)據(jù)庫),并通過代碼(上圖中為join)在云端找到這個函數(shù)并使用,而云端也能夠獲取使用這個構(gòu)件的代碼體,并選擇適當(dāng)?shù)囊鎴?zhí)行它。

        ③兩者混合組成的構(gòu)件

        兩者指的是預(yù)編譯的構(gòu)件和動態(tài)編譯的構(gòu)件,云平臺中為了資源更合理的利用,應(yīng)該允許不同類型的構(gòu)件重新再組合使用,該類構(gòu)件是一種對現(xiàn)成的和歷史資源再利用的一種重要表現(xiàn),軟件企業(yè)中經(jīng)歷了一段時間后,由于各種原因會留下很多歷史可用資源,這些資源可能是某個功能包、一些函數(shù)等;而該類資源還是具有很大的應(yīng)用價值,利用構(gòu)件對該類應(yīng)用進(jìn)行重新包裝,形成構(gòu)件,不但可以再利用現(xiàn)有的資源,而且可以把資源更抽象化,形成通用形組件,例如:郵件發(fā)送、短信發(fā)送等;如圖4是一個短信發(fā)送的通用構(gòu)件:

        圖4 短信發(fā)送構(gòu)件

        它的使用過程跟上述兩種構(gòu)件類似,也有唯一的代碼,并能通過云端查找和運(yùn)行。

        (2)性能優(yōu)化

        通過第一點對構(gòu)件的實現(xiàn)描述不難發(fā)現(xiàn),構(gòu)件基本上運(yùn)作在反射機(jī)制和動態(tài)編譯的環(huán)境下,這會給運(yùn)行環(huán)境帶來極大的資源損耗,使性能是急速下降;為此我們需要為云構(gòu)件平臺考慮緩存機(jī)制。

        ①類緩存

        由于使用Java反射機(jī)制,相比正常的類調(diào)用,性能會下降很多,例如當(dāng)Class會被調(diào)用時會用Class.for?Name進(jìn)行加載,而Class.forName方法的調(diào)用會執(zhí)行Class類文件在整個類路徑下的搜索,頻繁調(diào)用比較影響性能,同樣地還有對方法的執(zhí)行等,那么這類操作,我們需要使用緩存機(jī)制、靜態(tài)集合或者緩存中間件en?cache等都是一個不錯的選擇;如下代碼片段:

        圖5 類緩存

        ②腳本緩存

        腳本指的是由動態(tài)編譯的構(gòu)件保存的代碼,這類代碼相比反身機(jī)制更損耗資源和性能,預(yù)編譯的構(gòu)件,至少類是已經(jīng)存在的,但動態(tài)構(gòu)件它的類是在云端被使用時才進(jìn)行實時的編譯,因此同樣需要緩存;以Groovy為例,其主要緩存目標(biāo)是已編譯好的腳本對象Script。

        (3)軟件結(jié)構(gòu)與模板

        構(gòu)件是一個單獨的微業(yè)務(wù)單元,他們的互相組合會產(chǎn)生新的業(yè)務(wù),就好象堆積木一樣,然后一個或者多個構(gòu)件形成軟件所需要的功能模塊,不同功能模塊的組合就是我們所說的應(yīng)用軟件;優(yōu)化處理后的軟件形成一個通用性極高的模板,可以針對未來相似的應(yīng)用再進(jìn)行復(fù)制和二次開發(fā)重用,以下是軟件的組成結(jié)構(gòu)圖:

        圖6 軟件組成圖示

        不難看出,通過一定時間的沉淀,不同的應(yīng)用模板最終會組成企業(yè)所中心應(yīng)用庫;再開發(fā)類似的項目時,就可以在中心庫中提出相似度高的模板進(jìn)行二次開發(fā),成本會大幅下降。

        2.2 云端部署與資源共享

        (1)云端開發(fā)與部署

        云端是一個很好的軟件聚合平臺,它能提供一系列的強(qiáng)大的服務(wù),包括代碼的編譯、版本的管理、模塊功能的導(dǎo)出、安裝、部署、以及軟件授權(quán)與發(fā)布等;在云端上進(jìn)行開發(fā),我們不需要額外安裝第三方的開發(fā)環(huán)境,只需要準(zhǔn)備一個瀏覽器就可以進(jìn)入開發(fā)工作。

        云端上的應(yīng)用開發(fā)一般是實時進(jìn)行的,基于SaaS的即見即所得的應(yīng)用服務(wù),而這些應(yīng)用中包含構(gòu)件、業(yè)務(wù)模塊、UI界面等;被開發(fā)出來的應(yīng)用,經(jīng)過云端平臺提供的授權(quán)配置,可以供應(yīng)給第三方使用。

        同時,云端上除了能支持多租戶方式外,還支持個性定制和使用模式,軟件模塊能單獨被導(dǎo)出到另外一個云端應(yīng)用服務(wù)器上使用,并且安裝過程簡單,安裝后的軟件能進(jìn)行二次定制開發(fā)

        圖7 生成安裝包圖示

        (2)資源共享

        過去的開發(fā)應(yīng)用中,資源之間并未能很好地分享,各種資源相當(dāng)于一個單獨的孤島;云端的出現(xiàn),解決了這種資源被發(fā)現(xiàn)和共享使用的問題,在云端中,只要一人開發(fā)了某構(gòu)件,并發(fā)布到平臺上,其他接入人員就能實時地發(fā)現(xiàn)和使用,很好地避免了資源的重復(fù)開發(fā)帶來的人力和時間耗損,如圖8。

        圖8 云端開發(fā)圖示

        2.3 更多的應(yīng)用價值

        在過去項目實施中,往往有這樣一種場景,就是開發(fā)過程中有新的成員加入,或者某些成員被臨時調(diào)配其他項目組,新的成員接手,這種情況下接手的人員必須從相關(guān)文檔和代碼中理解當(dāng)前項目中的邏輯關(guān)系,這樣會造成一個學(xué)習(xí)和理解時間上的耗損,而且這個耗損代價并不少;在構(gòu)件化的平臺里面,邏輯性都是以圖型的形式表達(dá)并加以注釋,使得新接手的人員能快速地理解當(dāng)前業(yè)務(wù)邏輯,同時由于構(gòu)件的封裝,開發(fā)人員也只需要通過相關(guān)說明,理解構(gòu)件的入口參數(shù)和出口參數(shù)就可以使用,維護(hù)的成本會大大減少。

        3 未來的應(yīng)用現(xiàn)狀及前景展望

        現(xiàn)今市場上不少的軟件企業(yè)創(chuàng)造了各類不同的開發(fā)平臺,并為自己的平臺定義各種各樣的開發(fā)模式,但無論開發(fā)速度上有多優(yōu)越,還是存在著各種缺失,例如維護(hù)的成本,學(xué)習(xí)成本,資源的再利用等;云構(gòu)件模式是一種具有隨著資源的增長,開發(fā)時間縮短和成本降低的特性,在實際應(yīng)用中,能更有效地提高熟練開發(fā)人員的開發(fā)時間,提高其效率;能夠有利于新接觸的開發(fā)人員縮短學(xué)習(xí)的時間,快速進(jìn)入正作狀態(tài)。

        隨著AI人工智能技術(shù)的興起,很多資深的專家開始研究讓AI來完成項目代碼的編寫工作,但是代碼隨機(jī)性和復(fù)雜性將會帶來很大的問題;而構(gòu)件模式未來可以利用人工智能的各類算法讓機(jī)器學(xué)習(xí)構(gòu)件的使用,更進(jìn)一步從現(xiàn)有的庫中學(xué)習(xí)業(yè)務(wù)邏輯的排列方法,做到讓機(jī)器識別出各類需求對應(yīng)的業(yè)務(wù)功能,并自動完成;相比于代碼的實現(xiàn)方式難度將會大大降低。

        圖9 優(yōu)化開發(fā)過程圖示

        4 結(jié)語

        本設(shè)計是基于云端的構(gòu)件開發(fā)模型,在利用構(gòu)件的高可重用性的基礎(chǔ)上,配合云端的共享資源模式,使得資源的再利用達(dá)到一個更高的階段,具有隨著構(gòu)件、模塊、模板應(yīng)用的增長,開發(fā)周期會大幅縮短、成本會降低;對人員技術(shù)要求的也會將隨之而降低。

        [1](美)Vaughn Vernon(沃恩·弗農(nóng)).企業(yè)應(yīng)用架構(gòu)模式.滕云譯.電子工業(yè)出版社,2014-03-01.

        [2](美)Eric Evans.實現(xiàn)領(lǐng)域驅(qū)動設(shè)計.趙俐,盛海艷,劉霞譯.人民郵電出版社,2016-06-01.

        猜你喜歡
        云端代碼構(gòu)件
        云端之城
        創(chuàng)世代碼
        動漫星空(2018年11期)2018-10-26 02:24:02
        創(chuàng)世代碼
        動漫星空(2018年2期)2018-10-26 02:11:00
        創(chuàng)世代碼
        動漫星空(2018年9期)2018-10-26 01:16:48
        創(chuàng)世代碼
        動漫星空(2018年5期)2018-10-26 01:15:02
        美人如畫隔云端
        行走在云端
        初中生(2017年3期)2017-02-21 09:17:43
        云端創(chuàng)意
        建筑構(gòu)件
        建筑構(gòu)件
        久久久久成人精品免费播放动漫| 国产av无码专区亚洲aⅴ| 中文字幕一区二区三区喷水| 国产成人亚洲一区二区| 亚洲日韩av一区二区三区中文| 亚洲的天堂av无码| A亚洲VA欧美VA国产综合| 美女被黑人巨大入侵的的视频| 国产办公室秘书无码精品99| 国内老熟妇对白xxxxhd| 国产精品白浆无码流出| 日韩人妻大奶子生活片| 在线观看视频日本一区二区| 伊人久久大香线蕉综合影院首页| 成人免费视频在线观看| 国产成人亚洲综合小说区| 最新日本女优中文字幕视频| 亚洲熟妇av一区二区三区| 久激情内射婷内射蜜桃| 漂亮人妻被黑人久久精品| 久久精品国产亚洲AV香蕉吃奶| 免费av一区男人的天堂| 人妻少妇-嫩草影院| 国产成人精品999在线观看| 在线精品国内视频秒播| 色婷婷亚洲十月十月色天| 久久一区二区三区老熟女| 18禁黄污吃奶免费看网站| 丰满五十六十老熟女hd| 色婷婷丁香综合激情| av黄色大片久久免费| 99久热在线精品视频观看| 日韩精品无码一区二区三区视频 | 国产不卡一区二区三区视频| 精品人妻久久一日二个| 少妇激情一区二区三区视频| 久久无码人妻一区二区三区午夜| 少妇性饥渴bbbbb搡bbbb| 无遮挡网站| 成年男人午夜视频在线看| 水野优香中文字幕av网站|