计算机科学 ›› 2014, Vol. 41 ›› Issue (11): 141-145.doi: 10.11896/j.issn.1002-137X.2014.11.028

• 2013’全国软件与应用学术会议 • 上一篇    下一篇

支持依赖修复的热部署技术

李海骋,曹春,吕军,陶先平   

  1. 南京大学计算机软件新技术国家重点实验室 南京210023 南京大学计算机系 南京210023;南京大学计算机软件新技术国家重点实验室 南京210023 南京大学计算机系 南京210023;南京大学计算机软件新技术国家重点实验室 南京210023 南京大学计算机系 南京210023;南京大学计算机软件新技术国家重点实验室 南京210023 南京大学计算机系 南京210023
  • 出版日期:2018-11-14 发布日期:2018-11-14
  • 基金资助:
    本文受国家高技术研究发展计划(863计划)(2013AA01A213),国家自然科学基金:集成项目可信软件理论、方法集成与综合试验平台(91318301),国家自然科学基金:环境显示化中的涌现上下文研究(61073031),国家自然科学青年基金:面向网构软件的情境感知和自适应体系结构研究(61100037),江苏省科技支撑项目:基于云计算的智慧城市开发应用平台(BE2012123)资助

Hot Deployment with Dependency Reconstruction

LI Hai-cheng,CAO Chun,LV Jun and TAO Xian-ping   

  • Online:2018-11-14 Published:2018-11-14

摘要: 热部署机制是主流应用服务器的典型功能之一。但是目前的应用服务器仅仅支持独立应用的热部署,并不能满足具有依赖注入的复杂企业级应用在线更新的需求。如果在线更新部分模块,会出现程序调用失效的问题,并会导致整个应用平台的失效。为了解决这个问题,介绍一种支持依赖修复的热部署技术。 在首次部署应用的各模块时,用该技术建立模块之间的依赖关系。而在其更新时,通过查找依赖关系,找出受到更新影响的模块,修复依赖并进行局部的热部署,避免重启应用服务器的代价。最后通过实验表明,该热部署技术可以保证依赖注入下的应用正确性;在实际工程应用的场景下,该技术也能够大幅度提升应用服务器的性能和运行效率。

关键词: 热部署,依赖修复,应用服务器

Abstract: The hot deployment mechanism is a typical feature of mainstream application servers.But current application servers only support hot deployment of standalone applications,which cannot satisfy the requirement of complicated enterprise applications with dependency injection.Failures will occur when some modules are updated online,which will result in failure of the whole application platform.To solve the problem,a technology of hot deployment with dependency reconstruction was introduced.We created dependencies between modules when each module of applications is deployed at the first time.On its updating,we found out modules affected by the update,reconstructed dependency and carried out partial hot deployment,avoiding the cost of restarting application server.Experiments show that our technology of hot deployment can ensure the correctness of the application with dependency injection and operating efficiency of application servers will be highly improved in the scenario of real-world applications.

Key words: Hot deployment,Dependency reconstruction,Application server

[1] Ottinger J.What is an App Server?[EB/OL].http://www.theserverside.com/news/1363671/What-is-an-App-Server
[2] JBoss Application Server.The JBossGroup[EB/OL].http://www.jboss.org
[3] Yang H Y,Tempero E,Melton H.An empirical study into use of dependency injection in java[C]∥ASWEC 2008.19th Australian Conference on Software Engineering,2008.IEEE,2008:239-247
[4] Huang G,Wang W,Liu T,et al.Simulation-based analysis ofmiddleware service impact on system reliability:Experiment on Java application server[J].Journal of Systems and Software,2011,84(7):1160-1170
[5] JSR 220:Enterprise JavaBeansTM 3.0[EB/OL].http://www.jcp.org/en/jsr/detail?id=220
[6] Thyagarajan S M,Gangadharan B P,Padakandla S.Hot deployment of shared modules in an application server:U.S.Patent 7,1,277[P].2010-5-18
[7] Olliges S.Runtime Reconfiguration in J2EE Systems[D].Diplomarbeit,University of Oldenburg,2005
[8] Florian V,Neagu G,Preda S.An OGSA Compliant Environment for eScience Service Management[C]∥2010 International Conference on P2P,Parallel,Grid,Cloud and Internet Computing (3PGCIC).IEEE,2010:381-386
[9] Dornemann K,Freisleben B.Discovering Grid Resources andDeploying Grid Services Using Peer-to-Peer Technologies[C]∥International Conference on Advanced Information Networking and Applications Workshops,2009(WAINA’09).IEEE,2009:292-297
[10] Friese T,Smith M,Freisleben B.Hot service deployment in an ad hoc grid environment[C]∥Proceedings of the 2nd international conference on Service oriented computing.ACM,2004:75-83
[11] Abdellatif T,Kornas J,Stefani J B.Reengineering J2EE servers for automated management in distributed environments[J].Distributed Systems Online,IEEE,2007,8(11):1
[12] Heinrich M,Grüneberger F J,Springer T,et al.Enriching Web applications with collaboration support using dependency injection[M]∥Web Engineering.Springer Berlin Heidelberg,2012:473-476
[13] Rajam S,Cortez R,Vazhenin A,et al.Enterprise service bus dependency injection on mvc design patterns[C]∥TENCON 2010-2010 IEEE Region 10 Conference.IEEE,2010:1015-1020
[14] Fowler,Martin.Inversion of control containers and the dependency injection pattern[EB/OL].http://martinfowler.com/articles/injection.html
[15] Razina E,Janzen D S.Effects of dependency injection on maintainability[C]∥Proceedings of the 11th IASTED International Conference on Software Engineering and Applications:Cambridge,MA.2007:7
[16] Li Y,Zhou M,You C,et al.Enabling on demand deployment of middleware services in componentized middleware[M]//Component-Based Software Engineering.Springer Berlin Heidelberg,2010:113-129
[17] Zhang C,Gao D,Jacobsen H A.Towards just-in-time middle-ware architectures[C]∥Proceedings of the 4th international conference on Aspect-oriented software development.ACM,2005:63-74
[18] Fleury M,Reverbel F.The JBoss extensible server[C]∥Proc-eedings of the ACM/IFIP/USENIX 2003 International Conference on Middleware.Springer-Verlag New York,Inc.,2003:344-373
[19] Gu T,Cao C,Xu C,et al.Javelus:A Low Disruptive Approach to Dynamic Software Updates[C]∥APSEC.2012:527-536

No related articles found!
Viewed
Full text


Abstract

Cited

  Shared   
  Discussed   
No Suggested Reading articles found!