MyException - 我的异常网
当前位置:我的异常网» 软件架构设计 » 想做一个插件模型结构的系统,征求上大家的意见

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

www.MyException.Cn  网友分享于:2013-10-29  浏览:2次
想做一个插件模型结构的系统,征求下大家的意见

好久不写博客了,最近私下做了一些规划,想写一个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 的插件设计

文章评论

我的丈夫是个程序员
我的丈夫是个程序员
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
每天工作4小时的程序员
每天工作4小时的程序员
程序员都该阅读的书
程序员都该阅读的书
 程序员的样子
程序员的样子
代码女神横空出世
代码女神横空出世
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
为什么程序员都是夜猫子
为什么程序员都是夜猫子
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
鲜为人知的编程真相
鲜为人知的编程真相
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
旅行,写作,编程
旅行,写作,编程
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
我是如何打败拖延症的
我是如何打败拖延症的
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
Java程序员必看电影
Java程序员必看电影
老程序员的下场
老程序员的下场
一个程序员的时间管理
一个程序员的时间管理
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
总结2014中国互联网十大段子
总结2014中国互联网十大段子
中美印日四国程序员比较
中美印日四国程序员比较
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
漫画:程序员的工作
漫画:程序员的工作
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
那些争议最大的编程观点
那些争议最大的编程观点
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
如何成为一名黑客
如何成为一名黑客
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
程序员应该关注的一些事儿
程序员应该关注的一些事儿
程序员必看的十大电影
程序员必看的十大电影
程序员的鄙视链
程序员的鄙视链
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
编程语言是女人
编程语言是女人
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有