[!!!! web console] 基于Eclipse Equinox的插件框架:TPF

2024-01-15 08:48

本文主要是介绍[!!!! web console] 基于Eclipse Equinox的插件框架:TPF,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这篇blog是继之前的一篇提升C/S结构软件的管理性的延续,在这 篇blog中会更加的实际的去介绍基于Eclipse Equinox实现的一个插件框架,而不再是象上篇中那样的提及的想法而已了,通过这篇blog来展现目前一个这样的插件框架的实际应用的情况,为了更加 形象的表达,在文中会贴出一些目前这个系统的截图。
这个框架的简称为TPF,是目前我所做的产品的底层框架,TPF本身构建于Eclipse Equinox之上,Equinox做为OSGI R4的RI,提供了OSGI R4的全部实现,而且同时它还结合了Eclipse IDE做为插件平台的优势之处,所以是一个非常优秀的插件框架,但相对需要强大管理性的应用系统来说,基于Equinox还是缺少了一些做为基于微核的系 统的管理性,TPF就是为了满足这个而实现的,TPF主要的目标就是:
1、形成以TPF为微核的系统
      Equinox其实也是一个具备微核特征的插件框架,在Equinox中只需要System Bundle是正常运行的,那么就可以通过它来完成基于它之上的所有插件的管理,但对于系统级别而言,更多时候需要的是一种基于系统级别的控制,也就是统 一控制基于Equinox的插件,统一的进行重启、停止和启动这样的管理,而同时由于Equinox仅仅提供了console方式的管理,这对于用户来说 通常会有点麻烦,所以在TPF中提供的是web形式的管理。
      在一个拥有TPF的系统的图示通常是这样(写基于TPF不太正确,因为其他的Bundle并不需要依赖于TPF):
       tpfapp.jpg
      对于基于Equinox的系统而言,只需要安装上TPF的Bundle,便可拥有TPF提供的方便了:
      通过TPF可更加方便的对插件进行安装、管理(停止、更新、启动);
      index.JPG
      可以对插件的元信息(MANIFEST.MF)以及插件外带的一些配置文件的信息进行直接的修改,同时更是提供了更为方便的设置插件启动顺序的方法以及更加形象标明插件作用的插件名的设置的功能;
      info.jpg
      微核系统的特征,可统一启动或停止系统中的插件,方便了对于用户而言的管理功能。
       appman.jpg
      从这些特性上可以看出,在Equinox中安装了TPF的几个Bundle后,就可以更加方便的对插件进行管理了,同时也可以形象的感觉到微核系统的特 征,即不论系统处于启动还是停止状态,只要微核运行是正常的,那么系统就可以通过微核来进行管理、扩充功能以及修改功能的,而微核通常来讲都是非常稳定 的,在拥有这样特征的系统中,形象的说就是可以在项目开始的第一天在客户处部署一个系统,从此以后无论是更新版本还是如何,系统都是永远保持在运行状态 的。
2、增强的管理特性
      在TPF中除了上面所说的一些插件管理功能的提升之外,最重要的就是增加了对远程同样基于TPF系统的监控,在TPF中可以监控远程TPF系统的运行状态,同时还可对远程的TPF系统进行启动、停止的管理动作。
      remoteman.jpg
TPF 由三个Bundle共同构成,基于tpf.core可以实现其他方式的管理端,如client UI方式的管理端,JMX管理端等;tpf.webshell这个Bundle则提供了目前看到的web管理的方式,如不需要web管理则直接不安装这个 bundle就可以了或停止这个bundle(在需要的时候启动就可以了);tpf.api提供了管理远程TPF的接口,如不需要远程管理,也可不安装这 个bundle或停止这个bundle。

为了能更加清楚的说明TPF带来的影响,画了张简单的时序图:
tpfstart.JPG
这张图表达出了在安装上TPF Bundles后,其他App Bundles的生命周期包括启动顺序等是由TPF Bundles来控制,而不再是通过Equinox直接控制了,此时TPF Bundles和Equinox共同构成了系统的微核。

posted on 2006-08-18 21:24 BlueDavy 阅读(4971) 评论(10)  编辑  收藏 所属分类: Plugin Architecture

评论

 

#   re: 基于Eclipse Equinox的插件框架:TPF 2006-08-18 21:43 robbie

正如你所讲的,“写基于TPF不太正确,因为其他的Bundle并不需要依赖于TPF”,你的TPF提供了一个管理界面,类似于osgi console但强于这种命令终端也更加方便,功能更为强大,但从架构上,正如osgi bundle 也如eclipse plugin ,TPF与其它的bundle是并行在一个平面上的,而没有谁是谁的基础条件的问题,因为其它的bundle并没有依赖TPF,也没有必须知道TPF的存 在。所以你上面的图就有点问题了,TPF不是作为infrastructure存在的,我觉得从概念上讲 osgi web console更为合适。:)当然前提是我的理解没有错的话。不知道TPF是否以OS的方式发布?非常关注,因为作过一段时候的基于eclipse 的IDE开发,当时eclipse 并没有完全转向osgi,随时的3.0的release,osgi便吸引了eclipse社区相当的关注。这是一个能使软件真正能有机会实现组件化开发的 机会  回复   更多评论   

#   re: 基于Eclipse Equinox的插件框架:TPF 2006-08-19 11:27 leowu

我感觉那个框架图也不是太贴切,其实TPF在层次上也是一个bundle而已,并不属于基础性的东西,整体图示来看的话,核心还应该是osgi,tpf放在左侧或者右侧可能更合适一些。

题外话:此外,对于远程管理,可能很多时候还要考虑防火墙的限制,那么tpf作为大型应用的客户端架构的话(例如服务器管理客户端不同功能模块),这种远程控制就要做一些调整了。  回复   更多评论   

#   re: 基于Eclipse Equinox的插件框架:TPF 2006-08-19 16:36 BlueDavy

@robbie
感谢你的答复,你说的没错,由于我的一时偷懒,所以只是加了一行文字避免大家对图的误解,准确的来说TPF并不仅仅是OSGI Web console,就像我文中所说的Web console只是TPF提供的一个更加方便的管理方式可以,但如果觉得没必要的话,仍然可以不安装,TPF.core提供的API足以让你完成其他形式 的管理端,TPF将以OS的方式发布。

@leowu
图的问题确实是由于我的一时偷懒表达的不够准确,但其实在安装了TPF后所有的插件不是通过System Bundle去安装和启动,而是通过TPF去安装和启动的。
对于远程管理方面的话,穿越防火墙仍然是http较为方便,而目前tpf采取的也是http的方式。  回复   更多评论   

#   re: 基于Eclipse Equinox的插件框架:TPF 2006-08-19 17:28 BlueDavy

感谢robbie和leowu指出的错误,为了避免图给大家造成的误解,重新画了图,并增加了一个简单的时序图来说明下在安装TPF后对Equinox产生的影响。  回复   更多评论   

#   re: 基于Eclipse Equinox的插件框架:TPF 2006-08-24 22:06 guangqing

我的理解是这样,TPF是一个web化的增强的Equinox的console,同时提供了对对于console的远程管理。那么我想问,console中管理的是不是都是在同一个JVM中运行的bundle,远程节点之间的bundle又可不可以交互呢?
我对OSGi了解不多,总感觉它讲的都是在同一个JVM的情况(也许是由于它的原始需求决定的),我不知道它可不可以解决远程服务相互交互的情况,解决这个问题好像并不是一件难事?  回复   更多评论   

#   re: 基于Eclipse Equinox的插件框架:TPF 2006-08-25 11:31 BlueDavy

远程服务交互的话需要引入WebService,OSGI规范中目前只有硬件方面的远程互通的协议。  回复   更多评论   

#   re: 基于Eclipse Equinox的插件框架:TPF 2007-09-07 16:09 huangmy

BlueDavy 。不知道你能不能把TPF开源,谢谢  回复   更多评论   

#   re: 基于Eclipse Equinox的插件框架:TPF 2007-09-08 23:48 BlueDavy

@huangmy
TPF在今年年内一定会开源的,目前在做一些准备工作,最快的话可以在十月份完成开源的工作,多谢你的关注!
  回复   更多评论   

#   re: 基于Eclipse Equinox的插件框架:TPF 2009-05-13 09:29 疯狂的奶瓶

这张图表达出了在安装上TPF Bundles后,其他App Bundles的生命周期包括启动顺序等是由TPF Bundles来控制,而不再是通过Equinox直接控制了,此时TPF Bundles和Equinox共同构成了系统的微核。


这么说,当TPF启动后,equinox就退休了,此时不就是"基于"TPF了吗?  回复   更多评论   

#   re: 基于Eclipse Equinox的插件框架:TPF 2009-12-14 13:17 sjrfox

请问能给一个下载的有效连接吗??谢谢  回复   更多评论

这篇关于[!!!! web console] 基于Eclipse Equinox的插件框架:TPF的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/608312

相关文章

Java Web指的是什么

Java Web指的是使用Java技术进行Web开发的一种方式。Java在Web开发领域有着广泛的应用,主要通过Java EE(Enterprise Edition)平台来实现。  主要特点和技术包括: 1. Servlets和JSP:     Servlets 是Java编写的服务器端程序,用于处理客户端请求和生成动态网页内容。     JSP(JavaServer Pages)

BUUCTF靶场[web][极客大挑战 2019]Http、[HCTF 2018]admin

目录   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 [web][HCTF 2018]admin 考点:弱密码字典爆破 四种方法:   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 访问环境 老规矩,我们先查看源代码

cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个?

跨平台系列 cross-plateform 跨平台应用程序-01-概览 cross-plateform 跨平台应用程序-02-有哪些主流技术栈? cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个? cross-plateform 跨平台应用程序-04-React Native 介绍 cross-plateform 跨平台应用程序-05-Flutte

Spring框架5 - 容器的扩展功能 (ApplicationContext)

private static ApplicationContext applicationContext;static {applicationContext = new ClassPathXmlApplicationContext("bean.xml");} BeanFactory的功能扩展类ApplicationContext进行深度的分析。ApplicationConext与 BeanF

EasyPlayer.js网页H5 Web js播放器能力合集

最近遇到一个需求,要求做一款播放器,发现能力上跟EasyPlayer.js基本一致,满足要求: 需求 功性能 分类 需求描述 功能 预览 分屏模式 单分屏(单屏/全屏) 多分屏(2*2) 多分屏(3*3) 多分屏(4*4) 播放控制 播放(单个或全部) 暂停(暂停时展示最后一帧画面) 停止(单个或全部) 声音控制(开关/音量调节) 主辅码流切换 辅助功能 屏

数据治理框架-ISO数据治理标准

引言 "数据治理"并不是一个新的概念,国内外有很多组织专注于数据治理理论和实践的研究。目前国际上,主要的数据治理框架有ISO数据治理标准、GDI数据治理框架、DAMA数据治理管理框架等。 ISO数据治理标准 改标准阐述了数据治理的标准、基本原则和数据治理模型,是一套完整的数据治理方法论。 ISO/IEC 38505标准的数据治理方法论的核心内容如下: 数据治理的目标:促进组织高效、合理地

ZooKeeper 中的 Curator 框架解析

Apache ZooKeeper 是一个为分布式应用提供一致性服务的软件。它提供了诸如配置管理、分布式同步、组服务等功能。在使用 ZooKeeper 时,Curator 是一个非常流行的客户端库,它简化了 ZooKeeper 的使用,提供了高级的抽象和丰富的工具。本文将详细介绍 Curator 框架,包括它的设计哲学、核心组件以及如何使用 Curator 来简化 ZooKeeper 的操作。 1

9.8javaweb项目总结

1.主界面用户信息显示 登录成功后,将用户信息存储在记录在 localStorage中,然后进入界面之前通过js来渲染主界面 存储用户信息 将用户信息渲染在主界面上,并且头像设置跳转,到个人资料界面 这里数据库中还没有设置相关信息 2.模糊查找 检测输入框是否有变更,有的话调用方法,进行查找 发送检测请求,然后接收的时候设置最多显示四个类似的搜索结果

【Kubernetes】K8s 的安全框架和用户认证

K8s 的安全框架和用户认证 1.Kubernetes 的安全框架1.1 认证:Authentication1.2 鉴权:Authorization1.3 准入控制:Admission Control 2.Kubernetes 的用户认证2.1 Kubernetes 的用户认证方式2.2 配置 Kubernetes 集群使用密码认证 Kubernetes 作为一个分布式的虚拟

Spring Framework系统框架

序号表示的是学习顺序 IoC(控制反转)/DI(依赖注入): ioc:思想上是控制反转,spring提供了一个容器,称为IOC容器,用它来充当IOC思想中的外部。 我的理解就是spring把这些对象集中管理,放在容器中,这个容器就叫Ioc这些对象统称为Bean 用对象的时候不用new,直接外部提供(bean) 当外部的对象有关系的时候,IOC给它俩绑好(DI) DI和IO