CN103677854A - 适用于云计算环境下的osgi-web框架的设计方法和*** - Google Patents
适用于云计算环境下的osgi-web框架的设计方法和*** Download PDFInfo
- Publication number
- CN103677854A CN103677854A CN201310752317.6A CN201310752317A CN103677854A CN 103677854 A CN103677854 A CN 103677854A CN 201310752317 A CN201310752317 A CN 201310752317A CN 103677854 A CN103677854 A CN 103677854A
- Authority
- CN
- China
- Prior art keywords
- osgi
- module
- fragment
- main works
- web
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了适用于云计算环境下的OSGI-WEB框架的设计方法和***,该方法包括:定义主工程模块;根据开发需求定义对应于不同资源模块的多个片段,多个片段均被指定给主工程模块;以及将主工程模块和多个片段放入运行环境。本发明通过将OSGI片段技术和WEB片段技术二者进行组合,提高了利用OSGI平台开发WEB应用的效率和便利性。
Description
技术领域
本发明涉及云计算领域,更具体地,涉及适用于云计算环境下的OSGI-WEB框架的设计方法和***。
背景技术
OSGI(Open Service Gateway Initiative)技术是面向Java的动态模型***。OSGI服务平台向Java提供服务,这些服务使Java成为软件集成和软件开发的首选环境。Java提供在多个平台支持产品的可移植性。OSGI技术提供允许应用程序使用精炼、可重用和可协作的组件构建的标准化原语。这些组件能够组装进一个应用和部署中。
JETTY是一个开源的servlet容器,它为基于Java的web内容,例如JSP和servlet提供运行环境。JETTY是使用Java语言编写的,它的API以一组JAR包的形式发布。开发人员可以将JETTY容器实例化成一个对象,可以迅速为一些独立运行(stand-alone)的Java应用提供网络和web连接。
OSGI服务平台提供在多种网络设备上无需重启的动态改变构造的功能。OSGI联盟已经开发了为例如HTTP服务器、配置、日志、安全、用户管理、XML等很多公共功能标准组件接口。这些组件的兼容性插件实现可以从进行了不同优化和使用代价的不同计算机服务提供商得到。为了最小化耦合度和促使这些耦合度可管理,OSGI技术提供一种面向服务的架构,它能使这些组件动态地发现对方。
一些OSGI标准协议实现框架都在尝试WEB应用方面的开发,如Equinox框架就提供了桥接和嵌入式两种实现WEB应用开发的支持。对桥接技术目前官方不再更新维护,基本上可以放弃了这种方式。现在支持嵌入式实现WEB应用开发的社区很多,这种方式也比较简单和可用性比较强。Equinox框架通过集成JETTY容器来实现WEB应用的开发与运行支持。
近年来OSGI向WEB方向发展速度很快,但是仍然和传统WEB开发方式还有很大差距。开发方式和部署方式比较复杂,提供的容器选择也比较单一,目录集成较好的容器是JETTY。OSGI在WEB上的应用目前主要有两种方式:
1、OSGI框架嵌入WEB容器:此方式需要通过servletbridge方式来运行OSGI的WEB应用程序,此方式属于桥接方式,目前这方面的社区发展基本停止,不再有新版本更新支持。
2、WEB容器嵌入OSGI容器内:此方式需要通过HttpService注册方式来支持OSGI运行WEB应用,此方式是当前主流的采用的实现方式,如Equinox集成JETTY,Felix通过Pax+web集成实现。
就现有的这两种方式而言,都可以达到对WEB应用开发的基本要求,但是使用起来比较复杂,开发过程调试比较困难以及搭建开发环境也比较困难,因为复杂的依赖关系会让开发人员焦头烂额。因此,希望解决在OSGI环境上开发WEB应用的快捷方式,能够让开发人员方便调试,搭建环境简单,有利于团队协作与提高效率。
发明内容
针对相关技术中的问题,本发明提出适用于云计算环境下的OSGI-WEB框架的设计方法和***,能够充分发挥OSGI和WEB二者的优势。
根据本发明的一个方面,提供了一种适用于云计算环境下的OSGI-WEB框架的设计方法,包括:定义主工程模块;根据开发需求定义对应于不同资源模块的多个片段,多个片段均被指定给主工程模块;以及将主工程模块和多个片段放入运行环境。
优选地,在运行环境中预先配置有OSGI容器和嵌入OSGI容器的JETTY容器。
优选地,在将主工程模块和多个片段放入运行环境之后,还包括:运行环境创建JETTY服务;以及JETTY服务扫描所有模块,分别对主工程模块和多个片段进行解析,并对解析结果进行注册。
优选地,主工程模块承载WEB工程的通用配置和资源定义,并且主工程模块还包括OSGI模块的服务配置信息。
优选地,多个片段包括WEB片段和定义内容和OSGI片段的定义内容。
根据本发明的另一方面,提供了一种适用于云计算环境下的OSGI-WEB框架的设计***,包括:主工程模块定义装置,用于定义主工程模块;片段定义装置,用于根据开发需求定义对应于不同资源模块的多个片段,多个片段均被指定给主工程模块;以及运行装置,用于将主工程模块和多个片段放入运行环境。
优选地,在运行环境中预先配置有OSGI容器和嵌入OSGI容器的JETTY容器。
优选地,设计***还包括:JETTY服务创建装置,用于在运行装置将主工程模块和多个片段放入运行环境之后,创建JETTY服务;以及解析注册装置,用于使JETTY服务扫描所有模块,分别对主工程模块和多个片段进行解析,并对解析结果进行注册。
优选地,主工程模块承载WEB工程的通用配置和资源定义,并且主工程模块还包括OSGI模块的服务配置信息。
优选地,多个片段包括WEB片段和定义内容和OSGI片段的定义内容。
本发明通过将OSGI片段技术和WEB片段技术二者进行组合,提高了利用OSGI平台开发WEB应用的效率和便利性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的设计方法的流程图;
图2是根据本发明实施例的运行定义的主工程模块和资源模块片段的流程图;以及
图3是根据本发明实施例的设计***的框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
为了解决现有技术中存在的问题,本发明的主要思想为采用JAVAEE6的标准定义的WEB片段技术与OSGI片段技术的二者合一,从而实现OSGI模块的松耦合以及WEB资源片段化开发与管理。这样就可以利用OSGI开发平台实现WEB应用的开发,而这就要求必须有个主工程模块HOST统一加载与集成片段资源。以下参照附图详细描述本发明。
图1是根据本发明实施例的设计方法的流程图。
如图1所示,根据本发明的适用于云计算环境下的OSGI-WEB框架的设计方法10包括:S102,定义主工程HOST模块;S104,根据开发需求定义对应于不同资源模块的多个片段,多个片段均被指定给主工程模块;以及S106,将主工程模块和多个片段放入运行环境。
具体来说,定义基础的HOST模块,该模块主要承载WEB工程的通用配置与资源定义,同时也包含OSGI模块的一些服务配置信息,该HOST模块最终打包是一个WAR包。
此外,需要根据开发需求定义出不同资源模块的片段,这些片段都需要指定同一个HOST模块,表示资源由该HOST来加载。这些片段主要包含WEB片段的定义内容及OSGI片段的定义内容。这些片段打包的结果一个普通的JAR包。
以下参照图2来描述在定义好HOST模块和资源模块的片段之后如何进行操作。图2是根据本发明实施例的运行定义的主工程模块和资源模块片段的流程图。
参照图2,在定义好HOST模块和资源模块的片段之后,将HOST模块和多个片段放入RUNTIME运行环境。其中,RUNTIME环境已配置有OSGI容器和嵌入OSGI容器的JETTY容器。RUNTIME在启动时就会创建JETTY服务,JETTY服务将扫描所有BUNDLE(即,各个独立的模块,包括HOST模块、资源模块及资源模块的多个片段),并将标识为WEB资源的包正确地加载解析。
具体进行操作时,如图2中的“WEB资源解析与注册”的步骤所示,JETTY发现WAR包(即,HOST模块)会立即解压至临时目录,并加载与解析WEB配置文件,将相应的WEB服务资源注册。同时,如图2中的“片段资源解析与注册”的步骤所示,也会扫描所有资源模块的片段,并正确解析WEB片段的资源,将解析的结果同样也注册。
对资源的解析与注册的处理对于本领域技术人员来说是公知的,因此本文不再进行详细的描述。此外,解析与注册之后所进行的诸如监听HTTP服务、处理请求与响应等操作对于本领域技术人员来说也是公知的,因此也不再进行详细的描述。
图3是根据本发明实施例的设计***的框图。
参照图3,根据本发明的适用于云计算环境下的OSGI-WEB框架的设计***包括:主工程模块定义装置32,用于定义主工程模块;片段定义装置34,用于根据开发需求定义对应于不同资源模块的多个片段,多个片段均被指定给主工程模块;以及运行装置36,用于将主工程模块和多个片段放入运行环境。
综上所述,借助于本发明的上述技术方案,通过将OSGI框架的片段技术与传统WEB的片段技术整合在一起,取二者的优势,从而充分发挥了OSGI框架的动态性与面向接口编程的原则,也发挥了传统WEB开发方式的资源处理,为OSGI在WEB环境下的应用开发提供了一种较好的设计方法。
换句话说,OSGI片段技术用于处理WEB应用资源,可以将WEB应用按模块没同创建相应不同的应用片段,真正意义上实现将WEB应用拆分成独立的模块进行开发。并且,OSGI片段技术与JAVAEE6标准定义的片段技术有机统一,丰富了OSGI片段处理WEB资源的方法,有利于对于每个片段模块都可以自定义WEB资源注册及相关WEB API的使用,更有利于灵活配置WEB的Servlet、Filter、Listener等WEB相关配置。
此外,对于本领域技术人员来说,也可以明确地看出,通过本发明,还可以实现以下优势:1)前端开发与后台服务开发可以分离,通过OSGI接口对外发布服务,前端只需要关注接口即可,而前端具体用到接口的服务,可以通过本发明方法提供的注解,会自动注入服务,即,前端引用接口服务的注解注入方式,前端开发人员只要在需要引入的接口服务添加些注解,即可自动注入服务实例;2)对于开发人员来说,搭建开发环境不再那么复杂,复杂的依赖关系也都通过本设计方法得到解决,开发人员只需要将已整理好的RUNTIME环境拷到自己的开发机器上,并依照文档作出简单配置即可;3)本发明的设计方法包含抽象出一些公共组件,如果对于前端通过验证组件、异常处理组件、日志管理等,这样有利于框架的适应性与可插拔定制性,前端通用可插拔的公共组件,这些组件包含异常处理、日志管理、表单较验框架;4)动态配置文件读取与立即生效机制,即修改配置文件内容,后台立即生效。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种适用于云计算环境下的OSGI-WEB框架的设计方法,其特征在于,包括:
定义主工程模块;
根据开发需求定义对应于不同资源模块的多个片段,所述多个片段均被指定给所述主工程模块;以及
将所述主工程模块和所述多个片段放入运行环境。
2.根据权利要求1所述的设计方法,其特征在于,在所述运行环境中预先配置有OSGI容器和嵌入OSGI容器的JETTY容器。
3.根据权利要求2所述的设计方法,其特征在于,在将所述主工程模块和所述多个片段放入运行环境之后,还包括:
所述运行环境创建JETTY服务;以及
所述JETTY服务扫描所有模块,分别对所述主工程模块和所述多个片段进行解析,并对解析结果进行注册。
4.根据权利要求1至3中任一项所述的设计方法,其特征在于,所述主工程模块承载WEB工程的通用配置和资源定义,并且所述主工程模块还包括OSGI模块的服务配置信息。
5.根据权利要求1至3中任一项所述的设计方法,其特征在于,所述多个片段包括WEB片段和定义内容和OSGI片段的定义内容。
6.一种适用于云计算环境下的OSGI-WEB框架的设计***,其特征在于,包括:
主工程模块定义装置,用于定义主工程模块;
片段定义装置,用于根据开发需求定义对应于不同资源模块的多个片段,所述多个片段均被指定给所述主工程模块;以及
运行装置,用于将所述主工程模块和所述多个片段放入运行环境。
7.根据权利要求6所述的设计***,其特征在于,在所述运行环境中预先配置有OSGI容器和嵌入OSGI容器的JETTY容器。
8.根据权利要求7所述的设计***,其特征在于,所述设计***还包括:
JETTY服务创建装置,用于在所述运行装置将所述主工程模块和所述多个片段放入运行环境之后,创建JETTY服务;以及
解析注册装置,用于使所述JETTY服务扫描所有模块,分别对所述主工程模块和所述多个片段进行解析,并对解析结果进行注册。
9.根据权利要求6至8中任一项所述的设计***,其特征在于,所述主工程模块承载WEB工程的通用配置和资源定义,并且所述主工程模块还包括OSGI模块的服务配置信息。
10.根据权利要求6至8中任一项所述的设计***,其特征在于,所述多个片段包括WEB片段和定义内容和OSGI片段的定义内容。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310752317.6A CN103677854A (zh) | 2013-12-31 | 2013-12-31 | 适用于云计算环境下的osgi-web框架的设计方法和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310752317.6A CN103677854A (zh) | 2013-12-31 | 2013-12-31 | 适用于云计算环境下的osgi-web框架的设计方法和*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103677854A true CN103677854A (zh) | 2014-03-26 |
Family
ID=50315521
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310752317.6A Pending CN103677854A (zh) | 2013-12-31 | 2013-12-31 | 适用于云计算环境下的osgi-web框架的设计方法和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103677854A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104104679A (zh) * | 2014-07-18 | 2014-10-15 | 四川中亚联邦科技有限公司 | 一种基于私有云的数据处理方法 |
CN104298512A (zh) * | 2014-10-10 | 2015-01-21 | 南京莱斯信息技术股份有限公司 | 一种基于OSGi标准的功能组件式集成开发*** |
CN105404504A (zh) * | 2015-11-02 | 2016-03-16 | 北京锐安科技有限公司 | 一种Web组件的调试方法及装置 |
CN107577483A (zh) * | 2017-08-31 | 2018-01-12 | 武汉斗鱼网络科技有限公司 | 组件工程调用主工程代码的方法、存储介质、设备及*** |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040194059A1 (en) * | 2003-03-27 | 2004-09-30 | International Business Machines Corporation | Method to deploy software using an open service gateway initiative (OSGi) framework |
CN102404149A (zh) * | 2011-11-23 | 2012-04-04 | 华为技术有限公司 | 一种业务特性的管理***和方法 |
CN103309674A (zh) * | 2013-06-25 | 2013-09-18 | 深圳中兴网信科技有限公司 | 一种软件架构*** |
-
2013
- 2013-12-31 CN CN201310752317.6A patent/CN103677854A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040194059A1 (en) * | 2003-03-27 | 2004-09-30 | International Business Machines Corporation | Method to deploy software using an open service gateway initiative (OSGi) framework |
CN102404149A (zh) * | 2011-11-23 | 2012-04-04 | 华为技术有限公司 | 一种业务特性的管理***和方法 |
CN103309674A (zh) * | 2013-06-25 | 2013-09-18 | 深圳中兴网信科技有限公司 | 一种软件架构*** |
Non-Patent Citations (2)
Title |
---|
林泊 等: "一个J2EE应用服务器的Web容器集成框架", 《软件学报》 * |
谈祥庆: "基于 OSGi的企业级开发框架实践——认识OSGi和SpringDM", 《HTTP://BLOG.CSDN.NET/JACKTAN/ARTICLE/DETAILS/8581208》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104104679A (zh) * | 2014-07-18 | 2014-10-15 | 四川中亚联邦科技有限公司 | 一种基于私有云的数据处理方法 |
CN104104679B (zh) * | 2014-07-18 | 2017-07-11 | 四川中亚联邦科技有限公司 | 一种基于私有云的数据处理方法 |
CN104298512A (zh) * | 2014-10-10 | 2015-01-21 | 南京莱斯信息技术股份有限公司 | 一种基于OSGi标准的功能组件式集成开发*** |
CN104298512B (zh) * | 2014-10-10 | 2018-02-16 | 南京莱斯信息技术股份有限公司 | 一种基于OSGi标准的功能组件式集成开发*** |
CN105404504A (zh) * | 2015-11-02 | 2016-03-16 | 北京锐安科技有限公司 | 一种Web组件的调试方法及装置 |
CN105404504B (zh) * | 2015-11-02 | 2018-12-25 | 北京锐安科技有限公司 | 一种Web组件的调试方法及装置 |
CN107577483A (zh) * | 2017-08-31 | 2018-01-12 | 武汉斗鱼网络科技有限公司 | 组件工程调用主工程代码的方法、存储介质、设备及*** |
CN107577483B (zh) * | 2017-08-31 | 2019-11-15 | 武汉斗鱼网络科技有限公司 | 组件工程调用主工程代码的方法、存储介质、设备及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107291523B (zh) | 一种Web前端消息总线*** | |
KR101784784B1 (ko) | 클라이언트-서버 브리지를 사용하는 객체 관리 | |
CN103077024B (zh) | 一种支持SaaS应用流程按需定制与运行的装置及方法 | |
US8584081B2 (en) | Server side application integration framework | |
CA2604449C (en) | A system and method for flexible visual representation of presentation components | |
CN101847100B (zh) | 扩展软件应用的方法和装置 | |
CN108011768B (zh) | 一种aop拦截式HBase数据存储微服务架构构建方法 | |
US20060248121A1 (en) | System and method for supporting packaging, publishing and republishing of wireless component applications | |
CN105224466A (zh) | 一种基于Docker的集成测试方法及*** | |
CN104484216A (zh) | 服务接口文档和在线测试工具生成方法、装置 | |
US9626157B2 (en) | Method of projecting a workspace and system using the same | |
US20220236976A1 (en) | Versioning of pipeline templates for continuous delivery of services on datacenters configured in cloud platforms | |
Gupta | Java EE 7 Essentials: Enterprise Developer Handbook | |
US20080046882A1 (en) | Deploying j2ee web applications in an osgi environment | |
WO2011045634A1 (en) | Automated enterprise software development | |
CN102023856A (zh) | 根据用户的需求格式化输出及操作伺服端业务数据的方法 | |
EP1387262A1 (en) | Method to generate synchronization contracts for software components and web services | |
WO2014138894A1 (en) | Systems and methods for controlling branch latency within computing applications | |
CN103645908A (zh) | 网构软件全生命周期开发实现*** | |
CN103186455B (zh) | 页面自动化测试脚本生成方法及*** | |
CN102323884A (zh) | 一种多Web服务发布的方法及Web服务容器 | |
US20130167110A1 (en) | Modeled user interface controllers | |
US11392366B1 (en) | Optimized compilation of pipelines for continuous delivery of services on datacenters configured in cloud platforms | |
CN103677854A (zh) | 适用于云计算环境下的osgi-web框架的设计方法和*** | |
CN103457761A (zh) | 一种跨平台命令行配置接口的实现方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140326 |
|
RJ01 | Rejection of invention patent application after publication |