TPF插件管理框架功能、实现以及下载

 

       OSGi在应用时具备了典型的微核系统的特点,但对于实际项目/产品型的应用而言,这个微核有些过于底层了,为什么这么说呢?

对于实际项目/产品型的应用而言,何谓其微核呢,应该说其脚手架或开发平台才是它的微核,而并非仅仅是OSGi框架,当然,也可以将自己的脚手架或开发平台以Fragment-Host的方式绑定到OSGiSystem Bundle上去,但这样的做法无疑有些evil了,TPF诞生的最主要的目的就是形成一个应用级的微核的概念,使得我们在管理实际的项目和产品时,能够将脚手架和实际的业务应用模块分离管理,让脚手架也变成微核,这样在管理时就可以做到对应用系统的统一管理,而同时保持一个含应用意义的微核(也可以认为是开发平台)的稳定运行,在具备了TPF的情况下,就可以将应用系统从部署上分为脚手架和应用系统,而在管理上也可以单独对应用系统进行管理,如启动应用系统、停止应用系统,同时避免应用开发人员对脚手架无意的修改。

       在本篇文档中将介绍TPF提供的功能、TPF实现的方法以及TPF的下载地址。

功能

       TPFweb形式来管理TPF中的插件,该web管理端提供了以下功能:

l         插件的安装

在插件的安装上TPF支持两种形式:

n         手工输入插件的地址

可用于实现位于服务器上的目录形式的插件的安装。

n         选择插件文件

可用于实现远程安装插件至服务器或安装服务器上的插件,这些插件必须是zipjar格式的。

上传至服务器的路径在TPFcn.org.osgi.tpf.webconsoleMANIFEST.MF中指定。

l         插件的管理

TPF仅管理通过TPF Web管理端安装的插件,通过install方式在OSGi console中安装的插件TPF将不进行管理。

TPF支持插件的启动、更新、停止、卸载的管理。

l         插件MANIFEST.MF修改的支持

TPF支持修改插件的MANIFEST.MF文件的内容。

l         应用系统的管理

TPF具备了应用级微核的概念,因此TPF可支持应用系统的管理,其实意思就是可以统一的对通过TPF部署的插件进行管理:

n         统一的启动TPF中的所有插件;

n         统一的停止TPF中的所有插件;

n         导出TPF中所有的插件的配置。

这个功能使得只需要在一台机器上完成了应用系统的部署后,可以通过导出配置来生成TPF启动时的插件配置文件,这样在其他机器上再部署时就不需要再通过插件管理端来部署插件了。

l         远程应用系统的状态查询

TPF支持查询远程部署至TPF的应用系统的运行状态。

l         远程应用系统的管理

TPF支持管理远程应用系统的状态,可停止和启动远程的应用系统。

实现方法

TPF的最重要的功能是要实现应用级微核,要实现应用级微核,就要让TPF知道哪些是应用系统的插件,只要知道哪些插件是需要列入TPF管理的就行了,对于这个问题TPF通过在其web管理端安装插件时将插件的信息写入至一个tpf.system.plugins文件来实现,通过这样的方法就可以使得TPF知道哪些插件是要管理的,TPF将记录这些插件的id、启动顺序、插件位置、插件名称以及插件的状态,当再次启动OSGi应用时,TPF将通过此文件来加载插件,此处要注意,这些插件并不是OSGi框架直接加载的,而是通过TPF来加载的,这样有助于TPF来控制插件的启动过程、保持插件原有状态等。

在实现了应用级微核概念的基础上,TPF基于OSGiAPI实现了像插件的安装、启动、停止、更新、卸载这些管理功能,基于文件操作的方式实现了对于Manifest.mf的修改。

在远程系统的状态监控和管理上,TPF基于OSGi.org.cnaxis封装模块实现了与远程的OSGi应用通讯从而获取远程OSGi应用的状态并进行管理。

下载

暂时还未把TPF归入开源的project中,感兴趣的同学可以先从以下地址下载源码和可运行版本:

源码:

http://www.bluedavy.com/opendoc/TPF-Source.zip

可运行版本:

http://www.bluedavy.com/opendoc/TPF-dist.zip

等将来把TPF归入到OSGi.org.cn的开源项目后,大家就可以通过svn来共同发展TPF项目了。

后续版本

目前版本的TPF对于大家来说也许主要是webconsole部分的功能,而且更多的也许是,TPF在后续主要需要增强的是插件启动的控制上的管理、提供系统依赖的图形化的分析以及远程TPF应用的图形化的监控和管理等等。

另外TPF在代码级别也还有很多可完善的地方,在实现上也许可以不专门出现一个tpf.system.plugins,而是通过在MANIFEST.MF中扩展出一个属性来实现应用级微核的概念,还有像将TPF的远程管理剥离开,以便不需要的话就可以不安装此插件。

TPF得到了一定的完善后,将会把它贡献给OSGi Bundle Repository

posted on 2007-10-05 19:48 BlueDavy 阅读(10707) 评论(21)  编辑  收藏 所属分类: OSGi、SOA、SCA

评论

# re: TPF插件管理框架功能、实现以及下载 2007-10-08 15:48 ff

十分感谢~  回复  更多评论   

# re: TPF插件管理框架功能、实现以及下载 2007-10-10 11:39 man

非常好!!....十分感谢!  回复  更多评论   

# re: TPF插件管理框架功能、实现以及下载[未登录] 2007-10-10 12:39 哈哈

非常感谢!!!!  回复  更多评论   

# re: TPF插件管理框架功能、实现以及下载 2007-10-16 11:33 jerryyu

请问怎样在eclipse环境中运行呢?  回复  更多评论   

# re: TPF插件管理框架功能、实现以及下载 2007-10-16 14:16 BlueDavy

@jerryyu
把source导入eclipse里,然后就直接直接以Run Equinox Framework的方式来运行了。  回复  更多评论   

# re: TPF插件管理框架功能、实现以及下载 2007-12-14 18:32 gembin

什么是微内核概念??  回复  更多评论   

# re: TPF插件管理框架功能、实现以及下载[未登录] 2008-01-11 10:44 jame

//还有像将TPF的远程管理剥离开,以便不需要的话就可以不安装此插件。

是啊,系统中的axis与我另一Bundle中的axis有时候会产生冲突...

MSN:jame_q@hotmail.com  回复  更多评论   

# re: TPF插件管理框架功能、实现以及下载[未登录] 2008-01-11 10:49 jame

如果在linux中跑BundleInstallUtil中pluginUrlk的file:/协议好象有点问题.

目前我改成file:////才能在Linux与Win同时跑通...  回复  更多评论   

# re: TPF插件管理框架功能、实现以及下载 2008-01-13 23:25 BlueDavy

@jame
非常感谢你的提醒。  回复  更多评论   

# re: TPF插件管理框架功能、实现以及下载[未登录] 2009-04-12 22:05 Charles

@BlueDavy
请问执行后出现 "警告: Unable to find required classes (javax.activation.DataHandler and javax.mail.internet.MimeMultipart). Attachment support is disabled." 该如何解决

管理网页可以连结, 但是没有办法看到安装的bundle, 是因为上述的警告的关系吗?  回复  更多评论   

# re: TPF插件管理框架功能、实现以及下载 2009-06-12 10:20 Vicky

HibernateModule是什么,是Hibernate插件么  回复  更多评论   

# re: TPF插件管理框架功能、实现以及下载 2009-07-07 10:18 Vicky

为什么我安装新插件,能够上传到服务器,但是显示异常:【BUNDLEINSTALL】服务处理错误,org.osgi.framework.BundleException: Error converting plugin at C:\Documents and Settings\Administrator\workspace\.metadata\.plugins\org.eclipse.pde.core\New_configuration\org.eclipse.osgi\bundles\26\1\bundlefile. at org.eclipse.core.runtime.internal.adaptor.EclipseStorageHook.generateManifest
而且在已安装插件中看不到已经安装的插件  回复  更多评论   

# re: TPF插件管理框架功能、实现以及下载[未登录] 2009-09-07 13:07 prince

Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/core/runt
ime/adaptor/EclipseStarter
Caused by: java.lang.ClassNotFoundException: org.eclipse.core.runtime.adaptor.Ec
lipseStarter
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)  回复  更多评论   

# re: TPF插件管理框架功能、实现以及下载 2009-12-14 11:51 sjrfox

您好!上面的地址连接不上,能给一个可以下载的地址吗??谢谢了  回复  更多评论   

# re: TPF插件管理框架功能、实现以及下载 2010-02-26 13:34 OSGI

好东西呀,林老大把地址更新一下吧,现在下不了了。
或者哪位有的话,能不能发给我一份,谢谢!
xoiunt@gmail.com  回复  更多评论   

# re: TPF插件管理框架功能、实现以及下载 2010-02-26 14:42 BlueDavy

@OSGI
? 地址已更新,应该可以下载的。  回复  更多评论   

# re: TPF插件管理框架功能、实现以及下载 2011-03-31 15:33 savagechen11

怎么访问这个webconsole呢?  回复  更多评论   

# re: TPF插件管理框架功能、实现以及下载[未登录] 2011-05-26 00:32 飞天

@BlueDavy
老大啊!!还是下载不了啊~ 不是说地址更新了

新的地址是什么呢??

fasasas@gmail.com  回复  更多评论   

# re: TPF插件管理框架功能、实现以及下载 2011-11-18 10:38 santafeng

您好!代码写的很好,设计模式很棒。不过在最新版本eclipse下调试有问题,AbstractController-processAction-ServiceReference[] serviceRefs=bc.getAllServiceReferences(WebCommand.class.getName(), "(command="+action+")");

serviceRefs 是null的。

谢谢。  回复  更多评论   

# re: TPF插件管理框架功能、实现以及下载[未登录] 2012-03-24 23:33 lk

@santafeng
同上  回复  更多评论   

# re: TPF插件管理框架功能、实现以及下载 2015-08-23 21:22 shenmin

下载链接失效了,没法下载啊  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航:
 

公告

 









feedsky
抓虾
google reader
鲜果

导航

<2007年10月>
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

统计

随笔分类

随笔档案

文章档案

Blogger's

搜索

最新评论

阅读排行榜

评论排行榜