1. Application Design:Service和Bean
Service for OSGi and Beans for Spring。
2. Application Packaging: Dependencies
Package Unit:Bundle
3. Applicaton Server: Classpath Loader
(1) 应用服务器上运行WAR内嵌OSGi
在这种情况下,各个WAR文件彼此间是互相独立的,应用服务器会给每个WAR文件生成各自的ClassLoader; 见附件
中的图:Application server deploying WARs.jpg.
(2) 应用服务器与其他Bundle运行在OSGi环境中
在这种情况下,应用服务器中有唯一的一个ClassPath,由OSGi管理;而且所有已经部署的WAR文件只由一个服务器
实例来管理;此时的WAR格式的文件是被转换成一个Bundle来处理的,这个转换过程由SpringDM来处理,见附件图:
Application server based on OSGi backplane deploying WARs.jpg.
(3) 应用服务器上运行原生的OSGi Bundle和WAR文件
见附件图:Application server supporting OSGi bundles and WAR files.jpg.
当前市场上支持这种模式的服务器主要有Virgo Web Server, 未来WebSphere和Weblogic也将支持。