我负责Java分布式多模块项目的后端部分的开发和维护。
该系统由几个EAR和WAR模块组成,这些模块将REST服务公开给前端GUI。它们被部署在Weblogic上的Application Servers群集中。
我目前正在设计一种全新的授权引擎,该引擎应在每个模块之间共享,并应授权用户执行的每个操作。系统中大约有100个并发用户每分钟进行20/30次调用。
我与客户决定授权策略将驻留在XML文件中。该文件很少更改。然后,将有一个评估引擎,它将“决定”是否允许用户执行某项操作。
我的疑问是:如何让其他模块进入此评估引擎?
我应该将其包装在公开的授权REST服务(如/ getAuthorisation / user / resource / action / attributes之类)的专用WAR后面吗?
我应该使用分布式内存缓存(使用诸如Coherence,Hazelcast,Redis等之类的东西)来托管代表策略的Java对象吗?
在第一种情况下,我将需要一些东西来同步部署在App Server上的所有webapp(再次是分布式缓存?)。
在第二种情况下,所有EAR和WAR都需要在其中包含评估器的专用库。
您有什么建议?您还有其他选择吗? 我希望我的解释已经足够清楚了。
谢谢!
弗朗切斯科