4年前在上一家公司,实现了一个RBAC平台,现在回头看一下,那个平台还很幼稚
一种常见的情况是,一个公司会有多个业务系统,每个业务系统都需要一些共享的东西
在我理解,共享包括2个层面:
较低的层面仅仅是二进制共享,比如数据库访问、服务路由等代码。将这些公共代码封装成jar包,如果没有业务系统的话,这些代码就无法运行
较高的层面是服务层面,比如用户管理、权限管理、登陆、鉴权、日志平台等。这个层面的东西,是能独立部署运行的,以组件的方式向业务系统提供服务。但并不是说这个层面就不向外提供jar包。一个典型的例子是CAS,除了服务端的CAS Server之外,也向客户端提供了CAS Client
我认为这2个层面综合起来,可以称为一个开发平台
上面所说的平台,涉及到以下这些概念:
统一用户:每个业务系统不需要单独维护用户信息,而是在平台统一维护用户信息,但是各业务系统可以根据自身的特殊业务,对用户信息进行扩展
单一用户管理:所有涉及到用户管理的动作,比如增删改,都在平台里实现
SSO:也就是单点登陆,在平台里实现所有业务系统的登陆和登出
LDAP:SSO的用户校验部分,有时候会基于LDAP实现,不过我个人感觉这个协议现在用得不太多
跨域访问(同源策略):javascript不能跨域运行(包括子域,比如mail.xxx.com上的脚本,不能修改message.xxx.com上的页面)
RBAC:一般来说,既然用户是在平台里统一管理,那么相应的群组和权限,也应该在平台里实现
我有一个想法,还没想得太清楚。
平台独立部署,作为SSO Server,业务系统登陆时,首先跳转到平台上,登陆成功以后进入一个index.jsp(index.jsp部署在业务系统所在服务器上,但是可能也是由平台提供的)
然后index.jsp加载index.js,发起ajax请求(可以用服务端代理的方式,绕过同源策略),在平台服务器获取用户的权限信息,在页面上渲染生成菜单
同时,平台提供了公共的js、css等公共UI组件,实现各业务系统的UI一致性,这个可以称为UI框架
此外,平台还提供了公共jar包,封装了各业务系统的公共代码
大致就是这样,总的来说,我认为一个完整的平台应该具备以下的特性:
1、提供公共的服务,业务系统无需重复实现
2、将公共代码封装成jar、js、css,简化业务系统开发
3、界限明确,平台提供的服务,必须保证业务无关性。在设计时就需要考虑清楚,什么东西应该放在平台里,什么东西应该交给业务系统自行实现
4、业务系统能够对平台提供的组件进行自定义扩展
5、当平台升级时,业务系统只需要进行简单的文件替换即可实现,即透明升级
分享到:
相关推荐
通过校本课程的开发,可以激发学生的学习兴趣,提高教学质量,同时也为教师的专业发展提供了平台。在面对挑战的同时,校本课程的实施也为教育改革带来了启示,即教育应更注重个体差异,尊重学校特色,以促进每个学生...
此外,社交媒体和在线教育平台可以用来普及保护知识,如揭示吃青蛙可能导致的健康风险,提高公众的认识。 再者,教育和宣传的作用不容忽视。正如文中提到的口号与实际行为之间的脱节,我们需要更深入、更具针对性的...
在本篇文章中,我们将深入探讨马云关于“中国缺的是有一个想法,并且能够持之以恒把这个想法不断坚持做下去的人”的这一著名观点。 #### 一、拥有一个清晰的想法 马云强调了拥有一个明确想法的重要性。在这个充满...
从提供的文件内容中,我们可以提炼出一系列关于构建全球化架构一站式体验监测平台的知识点,下面将详细阐述这些知识点。 1. 全球化体验测试痛点及解决思路 在进行全球化业务体验测试时,测试人员面临着多种挑战,...
例如,汉莎航测集团上海英塔信息技术有限公司的案例就很好地展示了这一点。该公司总经理程东强调,真正的沟通是管理团队的基础,无论是与高级管理层的日常交流,还是与部门经理的非正式沟通,或是与普通员工的个别...
同时,引入在线学习平台,提供丰富的学习资源,支持自主学习和协作学习,以适应不同学生的学习节奏和风格。 【持续改进与评估】 持续关注教育质量的提升,定期进行教学评估和反馈,调整教学计划和内容,是保证...
随着移动设备的普及,华创Office办公平台v7.3充分考虑到了这一点,支持电脑、平板、手机等多种设备无缝切换。无论员工身处何处,只要有网络连接,就可以通过平台进行办公,查阅文档、审批流程、参与会议,真正实现了...
设计师需要运用联想法,如文案联想法、内容联想法和形式联想法,将故事、场景和情感融入设计中,创造出具有共鸣的视觉体验。例如,可以从中国风漫画中汲取灵感,结合产品特性,打造独特的视觉元素。 最后,多平台...
因此,我决定继续执行“创造一种跑步游戏”的想法,该游戏不仅要依靠自己的技能来获得高分,而且还需要一点运气–这意味着在每局比赛中未达到高分的可能性略有提高。由于涉及运气因素,因此比大多数游戏都要
我积极使用Google日历,它向我发送了各种提醒(又名Pings:') ,因此,我认为我可以研究新的想法,而不必重新发明轮子。 另外,有很多工具可以从命令行与Google日历进行交互,并且它们还可以处理NLP。 因此,我...
这个想法是将基本的游戏制作概念组合成易于阅读的资源,有抱负的画布游戏开发人员可以选择该资源。 归因 提供的图像资产 使用创建的精灵表 还有我们朋友的一点帮助... 我是画布的新手。 几乎所有用于配合这款游戏...
Java程序可以部署在Java平台上,这意味着Java开发的应用程序可以运行在Java平台上,这一点在学习Java的企业版(JEE)时尤为重要。 Java的应用场景非常广泛,它能够用于开发桌面级应用,尤其是跨平台的桌面级应用...
这种快速迭代的能力使得企业在较短的时间内就能验证自己的业务想法,从而缩短产品推向市场的周期,抓住宝贵的商业机会。对于那些希望快速响应市场变化的企业来说,这一点尤为重要。 #### 二、降低开发成本 传统的...
Java的应用程序也是部署在这个平台上,Java提供了一套部署和运行Java应用的环境,特别是在Java企业版(JEE)的学习中,这一点体现得更加明显。 了解Java能做什么同样重要。Java能够处理各种类型的软件应用,主要...
- **Java部署环境**:Java程序在开发完成后也需要部署在Java平台上运行,尤其是在企业级应用中,这一点尤为关键。 #### 二、Java能做什么? 1. **桌面级应用**: - **定义**:桌面级应用是指那些运行在用户本地...
2011年数据库大会部分ppt下载 丁原:海量数据迁移方案.pdf ...童家旺:我对后端优化的一点想法.pdf 赵振平:MYSQL数据库世界五百强应用一例.pdf 周淳:DM针对大数据量环境下分析型应用的支持方案v2.0.pdf
xray是什么 漏洞挖掘之JSONP JSONP 手动挖掘 漏洞挖掘的进化是从人工到自动化的过程 漏洞挖掘之JSONP自动化 JSONP检测-正则升级之路 漏洞挖掘的自动化依赖于优秀的检测算法 JSONP检测 - 语义分析 ...一点想法
此外,互联网环境下,学生与辅导员的交流内容也更加广泛,学生通过网络平台能及时反馈自己的想法和建议,辅导员也可以及时获取学生的反馈,调整教育方法和内容,使教育资源和信息更加有针对性,更好地满足学生的需求...
在这个特定的压缩包文件中,标题为“misc:这一点,那一点”,暗示着这个包内包含的是各种零散但可能有用的信息,可能涵盖编程、文档写作、设计等多个方面。 描述中提到“随机代码,文档,人工转储,illustations等...