OSGI简介:
OSGi是Open Services Gateway initiative的缩写,叫做开放服务网关协议。
OSGi联盟现在将OSGi定义为一种技术:
OSGi技术是指一系列用于定义Java动态化组件系统的标准。这些标准通过为大型分布式系统以及嵌入式系统提供一种模块化架构减少了软件的复杂度。
OSGI分层:
安全层
模块层
生命周期层
服务层
服务
OSGI个人理解:
我们开发一个B/S应用,软件就相当于一个大容器,而各个功能模块就是一个个的组件,组件可以被任意的安装、更新或者删除而不影响该设备的运行。这些组件是一些能够动态发现和使用其他组件的类库或者应用程序,这些组件可以是商业组件通过购买获得,也可以是自行开发的。
生活中这样的例子也不少,比如办公室,办公室就是一个容器,想要办公室能够打印东西,装一个打印机,想要他能录像,装一个摄像机,想要他能够开电话会议,装几部电话!只要你告诉使用办公室的人就好!
简单实战:
iopenworks是一个继承了OSGI的一个开发框架,小小试验了一把:
1,首先,下载iOpenWorksSDK,类似于环境
官方网站:http://www.iopenworks.com/
2,安装
3,新建一个iOpenWorks项目
4,运行,安装页面插件
输入自己的用户名密码,就可以查询网上做好的插件
下载web页面插件:
运行效果:
5,添加新web插件
路径必须在主页面Plugins文件夹下
6,修改新插件
增加一个页面:
修改配置文件:
<?xml version="1.0" encoding="utf-8" ?> <Bundle xmlns="urn:uiosp-bundle-manifest-2.0" SymbolicName="OsgiTest" Name="OsgiTest" Version="1.0.0.0" InitializedState="Active"> <Activator Type="OsgiTest.Activator"/> <Runtime> <Assembly Path="bin\OsgiTest.dll"/> </Runtime> <Extension Point="UIShell.WebApplications"> <Application ToolTip="OsgiTest" Icon="../OsgiTest/Images/Application.png" DefaultPage="/Plugins/OsgiTest/Default.aspx"> <NavigationNode Text="Application1" ToolTip="Application1" ImageUrl="../OsgiTest/Images/Application.png" NavigateUrl="../OsgiTest/Pages/Application1.aspx"/> <!--配置新页面,地址是../OsgiTest/OsgiTest2.asp--> <NavigationNode Text="Application2" ToolTip="Application2" ImageUrl="../OsgiTest/Images/Application.png" NavigateUrl="../OsgiTest/OsgiTest2.aspx"/> </Application> </Extension> </Bundle>
显示结果:
总结:
不怕不知道,就怕不知道,在程序开发的过程中,眼界将会成为一个最大的分水岭,有这么好的东西,我们缺乏的不是研究美的能力,而是发现美的眼睛!