读书人

想做一个插件模型结构的系统征求上大

发布时间: 2012-10-28 09:54:44 作者: rapoo

想做一个插件模型结构的系统,征求下大家的意见

好久不写博客了,最近私下做了一些规划,想写一个base framework/platform + plugin * n的一个系统,并写了一些代码。我的思路是这样的

?

平台核心是下面两个功能实现:

权限管理(user/usergroup/role/module/resource,一个设计了这几个表,每两个之间都是多多对应的);

?

插件管理(plugin数据模型,对应的持久层即数据库的表,plugin管理器,在service层,具有加载,更新,卸载,开启关闭plugin的方法,附带的有web管理页面,什么action,listener),插件所属于一些具体的应用application,通过application与module(权限部分的功能模块)的一多对应,就可以关联到一个具体的用户组对应的应用application,即可以使用插件了。

?

额外辅助的一些有:

一组统一的web风格页面,我暂时是page header + page main navigation(两层) + page sub sidebar navigation + main content(iframe) + page status bar + page footer几块部分。主导航根据登陆用户从数据库中读取对用的应用application加载,次导航sidebar是个树形结构的链接导航栏,对应一个功能模块module,html代码也是有数据库中保存,根据主导航选择调用,可以缓存或即时的。 用户真正主要操作就放在mian content里面去了。

?

以上功能我几乎都实现并测试完了,下一步打算做几个具体的插件充实下,选择为知识管理wiki。

?

不知道大家对我这个想法有什么看法……欢迎拍砖……毕竟经验少,也欢迎大家提一些建议,帮我完善下这样的一个系统。

1 楼 fjlyxx 2008-12-02 权限管理(user/usergroup/role/module/resource,一个设计了这几个表,每两个之间都是多多对应的);

再加个应用系统 有必要为以后的统一登入和管理做准备. 2 楼 pubx 2008-12-02 不知道你的plugin是怎么实现的。 3 楼 iamlibo 2008-12-02 html代码都放到数据库中?那制作一个插件的时候会是怎么样呢?如果涉及用web.xml中的配置内容要怎么更新呢? 4 楼 key232323 2008-12-02 iamlibo 写道html代码都放到数据库中?那制作一个插件的时候会是怎么样呢?如果涉及用web.xml中的配置内容要怎么更新呢?

并不是所有的html都放在数据库中,目前放进去的只有两个导航信息而已。这些都是和权限相关的(一个用户组对应个应用,这些应用对应的操作链接)。

我想的plugin是这样的

一个plugin概念上的应该包括一下几个部分:
1.源码打包的主要jar,和他所依赖的jar包
2.用于集成到该平台的配置文件,具体包括,国际化需要的properties,url mapping(和struts的config类似,但是基于properties的)
3.sql文件,这个应用所需要的数据词典
4.plugin的描述性文件,feature.xml
5.web相关的文件(css/js/images/html/jsp/ftl/vm等)

上面的文件都放在相应的文件夹里。

下面就是plugin manager做的事:
1.copy jar到classpath
2.执行sql
3.加载plugin相关信息,启动或者。
4.集成到平台里面去,具体是先插入相关权限记录信息(这个plugin有什么样的用户组,角色,功能模块等),然后向平台的应用注册,即向app表里插入相关记录。
5.最后分配用户组给具体用户。

这样用户->用户组->role->module->app,这样就可以得到具体plugin的主导航和侧栏导航链接了,即可以使用了。

因为我说的这个平台,其实已经有了基本的mvc、dao、支持国际化了。

欢迎继续讨论,呵呵。 5 楼 key232323 2008-12-02 fjlyxx 写道权限管理(user/usergroup/role/module/resource,一个设计了这几个表,每两个之间都是多多对应的);

再加个应用系统 有必要为以后的统一登入和管理做准备.

我做得第一个插件就是base plugin

提供sys用户组,sys_auth_manager,sys_plugin_manager两个角色,对应auth_user/group,auth_module/resource
plugin_manage几个模块已经可以进行权限操作和插件管理了。

以后我想想要不要加入模板skin修改等功能。
6 楼 phoenix.clt 2008-12-03 可以参考一下 Grails 的插件设计

读书人网 >软件架构设计

热点推荐