999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于J2EE的模塊熱部署實現技術

2016-05-30 10:48:04高沈鋼傅啟明
企業科技與發展 2016年8期

高沈鋼 傅啟明

【摘 要】熱部署技術可以提高項目部署效率、降低部署難度,在不中斷系統服務的情況下更能提高用戶的使用體驗。文章總結了業界實現Java熱部署的2種實現方式,并另辟蹊徑地從項目模塊的角度提出實現J2EE項目熱部署的一種機制,最后展望了熱部署的發展前景。

【關鍵詞】J2EE;熱部署;模塊

【中圖分類號】TP393.08 【文獻標識碼】A 【文章編號】1674-0688(2016)08-0023-03

0 引言

在國有大中型企業中,項目的運行和維護工作占據了很重要的一環,特別是發布新版本的部署工作,關系著系統的穩定運行,成為運行和維護工作的重中之重。J2EE目前在國企中得到了廣泛應用,因此研究能簡化部署步驟、縮短新版本發布時對外中斷服務時間的J2EE熱部署技術有著極其重要的意義。

1 Java熱部署概念

J2EE追本溯源是Java,從技術層面講,Java熱部署指的是在不重啟Java虛擬機的前提下,能自動偵測到class文件的變化并更新運行時class的行為。反映到項目上,就是不需要停止并重新啟用Java程序(web服務器或者Java的應用),只需替換相應的Java資源(如jar包),就能使運行中的程序加載新的資源改變原有的業務邏輯。

2 Java熱部署實現方式

受到Java虛擬機類裝載機制和其語言本身的限制,目前業界的Java熱部署技術的基本方案都是實現了自己的類加載器,在運行時再通過重新構造類加載后實現的。在此方案的基礎上,實現方式可以大致分為2類。

2.1 遵照OSGI方式實現

OSGI(Open Service Gateway Initiative,Java動態模塊化系統規范)是一個通用框架,著名的可擴展開發平臺Eclipse(3.0以后)就是基于它實現的。OSGI框架劃分為4個層次:L0運行環境、L1模塊、L2生命周期管理、L3服務注冊,為組件(Bundle)提供了一個標準環境。基于OSGI開發的組件可被動態安裝、開啟、關閉、更新和卸載,實現比較復雜。

2.2 基于J2EE容器特性實現

直接利用J2EE容器特性實現熱部署,如weblogic的開發模式及其10.3.6以上版本實現的對熱部署的支持。由于基于J2EE容器特性實現部署粒度較大(應用級),因此熱部署時會出現session會話丟失和內存泄漏等問題,且不能做到真正的零間隔熱部署。

3 基于模塊實現的熱部署

為了解決實現過于復雜而效率低下、受容器限制、session丟失和部署時停止服務等問題,江蘇電力信息技術有限公司經過十多年的java項目開發經驗的積累與探索,提出了一種基于模塊的熱部署實現技術。

3.1 技術核心

基于J2EE項目實現模塊熱部署的技術核心在于類裝載器ClassLoader的幾個基本特性。

(1)共享特性:此特性源于Java的雙親委派機制。ClassLoader有繼承關系時,子類裝載器載入類時可設置為優先搜索父裝載器。因此,公用的非模塊類可由父ClassLoader裝載以達到子ClassLoader的共享。

(2)隔離特性:沒有繼承關系的ClassLoader之間,其互相的代碼可看作是完全隔離的。這個特性保證了基于無繼承關系的ClassLoader的模塊互不影響。

(3)裝載特性:作為對象的子ClassLoader可被父ClassLoader重新載入。老的子ClassLoader會被卸載,即當該子ClassLoader中所有關聯的Object都不再被引用時,此時JVM在適當的時機就會對關聯Object和ClassLoader進行垃圾回收。

(4)通信特性:在子ClassLoader中實例化出來的變量,可保存至父ClassLoader變量中。父ClassLo-

ader不能隨意訪問,只能通過類反射機制或轉化為父ClassLoader中的一個類或接口進行訪問。

3.2 基本原理

通過引入自實現的輕量級熱部署工具包,將項目本身的應用作為熱部署實現的容器,項目的業務模塊則作為熱部署的資源。熱部署時,應用本身沒變化,變化的只是需要替換業務邏輯的業務模塊資源包。應用將對資源包進行重新加載與解釋執行。

3.3 Java通用實現方式

通用實現方式定義與實現如下。

(1)定制類加載器(ConfigurableClassLoader):用于動態指定Classpath和指定查找類順序(如是否優先查找父Classloader),重新實現資源的載入機制。

(2)動態模塊(DynamicModule):一個動態模塊對應一個熱部署單元(即業務模塊資源包)。包括了ConfigurableClassLoader和DynamicModuleCfg。

(3)動態模塊配置器(DynamicModuleCfg):用于動態模塊的配置,主要包括對模塊名、classpath、jar資源在部署包中的路徑等信息的描述。

(4)動態模塊管理器(CfgDynamicModuleMgr):用于動態模塊的管理,如動態模塊的添加、停止、重新加載,同時提供所有對外的接口。

3.4 J2EE的實現方式

考慮到J2EE的多層架構,我們將熱部署與J2EE深度融合后做出如下組件設計:定制類加載器、動態模塊管理器、Bean容器管理器、MVC轉發器。

圖1中,定制類加載器、動態模塊、動態模塊管理器即通用實現中的概念。在基于J2EE項目的模塊熱部署實現中,動態模塊包含MVC轉發器和Bean容器管理器。其中,MVC轉發器主要是Controller類,Bean容器主要管理J2EE項目中各種Service和Dao類及之間的依賴關系。熱部署工具包中利用注解實現了MVC的URI映射、各種Bean的定義、實例化和相互的依賴關系,供動態模塊使用。

3.5 模塊熱部署的優點

這種基于J2EE的模塊熱部署實現對比業界Java熱部署實現具有如下優點。

(1)模塊熱部署比基于J2EE容器特性的熱部署顆粒度小,熱部署過程中模塊間互不影響,且不依賴于J2EE的容器特性。

(2)代碼開發比遵照OSGI實現的方式更簡單,減少了開發人員的學習成本;熱部署工具包中各種常用功能的注解實現,更節約了開發成本。

(3)熱部署工具包是一個輕量級的jar包,放入J2EE項目侵入性小,由工具包實現了熱部署的模塊管理控制臺,可方便地進行熱部署的管理工作。

4 結語

本文所述的基于J2EE項目的模塊熱部署技術,從開發角度來看,技術原理更容易理解且熱部署代碼簡單可控。從運維角度來看,模塊熱部署迅速,對外無中斷延遲,且系統會話保持不丟失。

在企業內使用該基于J2EE模塊的熱部署技術,可以避免停用服務更新版本的困擾,提高用戶使用系統的體驗,同時提高了部署效率、降低了部署的難度和對運維人員的技術要求。從企業長遠發展的角度來看,使用該項技術更可以加快企業的技術積累,為自動化部署打下基礎,提高企業的信息化開發與運維能力。

參 考 文 獻

[1]周志明.深入理解JAVA虛擬機[M].第2版.北京:機械工業出版社,2013.

[2]許令波.深入分析Java Web技術內幕[M].北京:電子工業出版社,2014.

[3]李海騁.熱部署技術的依賴修復問題研究[D].南京:南京大學,2015.

[責任編輯:鐘聲賢]

主站蜘蛛池模板: 欧美日韩国产在线播放| 日本黄网在线观看| 女人18毛片一级毛片在线| 国产超碰一区二区三区| 国产视频一区二区在线观看 | 国产精品无码翘臀在线看纯欲| 久久久久人妻精品一区三寸蜜桃| 97色婷婷成人综合在线观看| 亚洲永久色| 亚洲国产第一区二区香蕉| 成人福利免费在线观看| jizz国产在线| 午夜国产精品视频黄| 69视频国产| 夜精品a一区二区三区| 亚洲精品中文字幕无乱码| 日韩最新中文字幕| 国产一级无码不卡视频| 国产人在线成免费视频| 亚洲一级毛片| 国产精品自在在线午夜| www亚洲天堂| 日本人妻丰满熟妇区| 第一页亚洲| 日韩欧美亚洲国产成人综合| 美女内射视频WWW网站午夜| 日本黄色不卡视频| 亚洲国产AV无码综合原创| 国产精品国产主播在线观看| 国产成人调教在线视频| 欧美在线观看不卡| 日韩中文无码av超清| 国产激爽大片高清在线观看| 国产欧美精品专区一区二区| 青青草国产在线视频| 狠狠色狠狠色综合久久第一次| 九色在线视频导航91| 精品国产乱码久久久久久一区二区| 色综合中文综合网| 新SSS无码手机在线观看| 激情成人综合网| 亚洲三级片在线看| 亚洲Va中文字幕久久一区| 欧美成a人片在线观看| 美女被狂躁www在线观看| 久久综合亚洲鲁鲁九月天| 在线观看国产精品一区| 国产黄色免费看| 91综合色区亚洲熟妇p| 国产无码高清视频不卡| 亚洲性视频网站| 最新痴汉在线无码AV| 亚欧乱色视频网站大全| 精品人妻一区二区三区蜜桃AⅤ| 香蕉视频国产精品人| 青青热久麻豆精品视频在线观看| 亚洲成人一区在线| 丰满人妻中出白浆| 国产精品成人观看视频国产 | 性视频一区| 激情综合婷婷丁香五月尤物| 国产精品99r8在线观看| 欧美亚洲第一页| 黄色网在线免费观看| 国产尤物jk自慰制服喷水| 欧美在线视频不卡第一页| 欧美成人一级| 亚洲国产系列| 99在线免费播放| 亚洲国产日韩视频观看| 久久久精品无码一区二区三区| 国产91麻豆免费观看| 欧美高清三区| 日本高清视频在线www色| 高清国产va日韩亚洲免费午夜电影| 日本色综合网| 国产一级视频久久| 538国产在线| 欧美a在线看| 欧美亚洲一区二区三区在线| 久久福利片| 91免费片|