发信人: nhyad()
整理人: kamkam(2002-05-04 22:00:11), 站内信件
|
根据运行代理的特点,可能改改变代理限制,如在桌面上还是在服务器上,前台还是后台,或者在NOTES客户端还是WEB客户端。以下依次解释:
1、桌面或服务器
如果代理是基于服务器的数据库上一个代理的一部分,它运行在服务器上,而且有以下触发条件之一:
*在新邮件到达以前
*在新邮件到达以后
*创建或者修改了文档
*按每小时、每天、每周或每月的时间日程安排
在服务器上运行的时候,除非服务器是本地的,否则检查所有约束和ACL。其它所有代理(通过以下菜单选项调用:操作菜单、列表选择或文档粘贴)均运行在工作站上,而不管数据库本身在本地还是在服务器上。这一点大家要注意。运行在工作站上的代理将受到当前运行者的权限约束。若代理在WEB运行,Notes将执行所有的约束和ACL检查,这是因为此时代理总是在服务器上运行。
2、前台或后台
前台和后台的概念我个人感觉上和第一点比较类似,不过的确有此一说,主要分别在于大家在写代码时能否用到的一些类,一般在类中不要使用UI类,这是前台类,这个规定在目前社区中形成了一个约定俗成的规则,但实际上如果代理是在前台运行,你可以根本不理会这个规则,但如果代理在后运行请不要使用前台类,会出现以前很多同志们提出来的错误。
前台运行的代理中使用到UI类的话,一定要先保存文档,否则好象会出错,呵呵。
* 如果代理通过NOTES用户界面触发(手工通过操作菜单、按钮调用代理或从代理列表选择执行),NOTES在前台运行代理,这种代理中可以使用UI类。
* 如果通过日程安排或事件(如文档更新、新邮件到达等)调用代理,则NOTES在后台运行代理。
* 前后台的代理概念不能用于WEB调用的代理,因为此时代理总是在WEB服务器运行,它结合了前台和后台两种环境。
san_thanks:
个人经验吗?看起来挺别扭。
本地数据库也可以设成要根据ACL的权限。
此外,本地代理有一个要考虑的重要因素,就是ECL。
kamkam:
【 在 nhyad 的大作中提到:】
nhyad:
我将这句话“运行在工作上的代理将忽略约束检查”修改成“运行在工作站上的代理将受运行者的权限约束”,不知道你是否有不同意见?
san_thanks:
我想作者本意应该不是说代理操作本地数据库,而是说代理程序是装载到本地运行的意思。
至于ECL的限制,是所有lotus程序都要遵守的,不单指代理,所以不必特定指出了
nhyad:
答san_thanks:
ECL中,每个人自己的机器上,ECL被设成最大权限,可以做任何事情,一般不会引起任何提示或错误,不管数据库在服务器或本地。
在本地运行代理就相当于执行一段程序,并不会有太大的问题,我没有具体设置所有可能情况,但相信不会有问题。
答版主:
我刚才试过将一位用户不允许执行所有的LS及JAVA代理,我用管理员写了一段LS代码,这位用户照用,而且结果是正确的,你所改后的运行者的权限约束不知是哪里的权限约束?
非常感谢两位对小弟提出意见,大家共同学习,呵呵。
dingxiang:
nhyad的说法是正确的,“运行在工作[站]上的代理将忽略约束检查”。
kamkam:
在服务器上运行的时候,除非服务器是本地的,否则检查所有约束和ACL。其它所有代理(通过以下菜单选项调用:操作菜单、列表选择或文档粘贴)均运行在工作站上,而不管数据库本身在本地还是在服务器上。这一点大家要注意。运行在工作站上的代理将受到当前运行者的权限约束。若代理在WEB运行,Notes将执行所有的约束和ACL检查,这是因为此时代理总是在服务器上运行。
看以上这段话,我确实认为你所说的运行在工作站上,
是指服务器(非本地)上的数据库的代理,运行时代码是load到本地运行
而不是指运行本地数据库上的代理。
^^^^
不知道我的理解是否有误?请nhyad看看这段话是否有问题?修改一下好吗?毕竟我从自己的理解出发来改,可能误解了作者本意 |
|