一、前言
许多初学 Lotus Notes( Lotus Notes以下简称 Notes)的朋友常常会因为 Notes 学习范围太广、教育训 练课程太贵、中文资 料太少 ?等等因素,而 不知该从何开始入门 学习。 不过因为这些因素而放弃的话,其实是非常之可惜的,毕竟 Notes的功能及其整合性在群组软件 领域中,仍然是 领先其它群组软件的佼佼者。
Louis为 了让许多初学 Notes的朋友可以快速上手,所以决定着手撰写此系 列的文章,希望以最浅显 易懂的白话文 来为初学者建 立 Notes程序设计最基本的观 念(但会 不会中断 不敢保证 :p)。 不过既然是「随笔」,所以一些顺序的编排就 不会那么的有系统。另外,在章文中虽然偶尔会提到一些技术观 念,但并 不属于高深的技术文件,纯粹只是观 念养成的文章。 若您想进一步了解文中提及的观 念时, Louis「强 烈」建议直接 参考 Notes程序设计 说明资 料库。当然,本系 列文章中 若有讹误还请各位前辈高手多多指教。
二、 Notes 学习方向
Notes的 学习方向主要分为程序设计与系统管 理两部份,一般通称为 Notes AD( Application Development)与 SA( System Administration),而这也是 IBM官方的 说法。 不过,有时候 AD也有人称为 AP,而 SA则常会与 IT界常用的系统分析( System Analysis)搞混,所以在与其它朋友交 流时可千万 不要鸡同鸭讲。
但 不论是 Notes AD还是 SA的知 识,这 两者并无明确界线,而且 两者其实是相辅相成的。以 ACL的设定 来讲,就无法明确归纳至 AD或 SA任一范畴,因为 不管是在开发应用程序(应用程序以下简称 AP)或是管 理 Domino系统, ACL的设定都是必须的常 识。另外,在开发 Web AP时,为 了让浏览器使用者可以正常浏览存取 Web AP的内容与资 料,也须要先在服务器上做一些设定,而这也是开发人员所须要 了解的。
所以就 Louis个人的观点而言,千万 不要将自己的角色局限在程序设计师或系统管 理员而排斥 学习任何一方面的知 识。因为如此只会让您在执 行一些任务时捉襟 见肘罢 了。接下 来就让我们进入的正题吧 !!
三、 Notes资 料库的分 类与基础结构
在 学习 Notes AP开发的第一步骤,就是要先对 Notes资 料库有所了解,如此才 不会因为观 念不足或是错误而导致在开发过程中产生阻碍。所以 Louis先整 理一些观 念让您稍微了解:
(一) Notes资 料库的分 类
以目前市场上的资 料库产品而言,就资 料型态、功能性或配置方式分成好几 类, 例如最常听到的就是关 联式资 料库( Relational Database),通常简称为 RDBMS或是 RDB,而最具代表性的就是 Oracle、 DB2、 Informix、 SQL ?等等, 不过这 都是要付授权费,如果是免费的,目前最红的该属 MySQL 了 (Notes都可以跟这些资 料库整合喔 ~~)。
就资 料型态而言, Notes属于文件式资 料库而非关 联式资 料库。很多初学 Notes的朋友对文件式资 料库这名词通常 都会很疑惑,一是因为网 路上很难找到相关信息,二是对 Notes还 不是很了解。 不过在之后的内容中 Louis会 陆续 说明文件的观 念。
就资 料库的配置方式而言, Notes则被归 类在分布式资 料库,为 什么呢?因为 Notes 的资 料库可以藉由抄写机制,将各资 料库抄本分置到各服务器与客户端中。分布式资 料库的 理论在网 路上有很多资 料, 若有兴趣的话可以到各大搜寻引擎网站找找。
(二) Notes资 料库的结构
每一个 Notes资 料库在 windows OS下是以档案格式存在的,其扩展名通常是 NSF,也就是 Notes Storage Facility的简写,翻译成中文就是 Notes储存设备。至于扩展名 NTF也是 Notes范本资 料库,全名是 Notes Template Facility,是用 来产生一般资 料库的范本。也就是 说,您可以 利用模板资 料库 来新建一个资 料库,而此资 料库中的设计是与模板资 料库的设计一模一样的。
按照官方的 说法,每个 Notes资 料库是由四个基本组件所组成:
1.ACL:
就是 Access Control List,一般翻译成存取控制清单,或是权限控制清单,顾名思义就是让资 料库管 理员可以指定使用者对该资 料库执 行何种动作。
2.设计组件:
是指套表、视界、外框、图文框、 领航员 ?等等组件,而这些 都是 Notes资 料库最最基础的组件,也是用 来让资 料库可以与使用者互动的基本组件,没有这些组件,资 料库即无法运作。
3.所谓 逻辑:
是指程序设计师在资 料库中所撰写的程序语言, Lotus Script、公式、代 理程序 都是。主要是要运算处 理资 料库中的资 料,或者达成某些自动化的作业。
4.资 料:
是指储存在文件中的文字、 数字、日期时间、附加档案 ?等等信息。
四、资 料的安全控管
若要简单描述 Domino对资 料的安全控管,基本上由外而内可以分成几关:服务器 è资 料库 è文件 è隐藏公式。
以服务器这一关 来说,是在服务器文件中控管的, 例如允许或 不允许哪些使用者存取此服务器、允许或 不允许哪些使用者可以在服务器上建 立或删除资 料库 …等等。
若是使用者被赋予存取服务器的权限,就会进入到资 料库安全控管这关,而这关的安全控管就是由资 料库 ACL 来决定的。
再 来是文件的安全性控管,这是经由套表属性之安全卷标下的选项,以及 读者与作者 栏位 来处 理的。
最后就是隐藏公式,其实,隐藏公式根本就 不算是安全性控管的方法,这只能 说是开发技巧。因为即使透过隐藏公式把套表中的特定 栏位隐藏起 来,使用者仍然可以透过文件属性方块看到各 栏位中的资 料。
五、 ACL
既然我们在前面多次谈到 ACL, 不稍微跟他交个朋友好像 说不过去,所以在这儿就为大伙儿引荐他吧,呵呵。在 ACL中主要有几种组件设定:使用者 类型、权限 类型、执 行动作。
设定使用者 类型是为 了避免 ID被误用。举 例来说,通常服务器在资 料库 ACL中都是管 理员权限,假设服务器 ID被有心人士盗用,可能就会造成极大的破坏。所以为 了防范有心「人」士进 行这种破坏 行动,就必须在 ACL中正确设定为服务器 类型,如此该人士即使拿到服务器 ID也没办法使用 Notes client 来对资 料库执 行任何活动。因为,服务器 不是「人」,所以 不会使用 Notes client( 不过在系统管 理中, Louis强 烈建议把服务器当作是「人」,这样有助于管 理概 念的建 立)。但相对的,如果未设定适当的 类型,也会导致某些动作无法执 行。
再 来是权限 类型,依权限低高依序有七层-没有权限、储存者、 读者、作者、编辑者、设计师、管 理员。【没有权限】当然就 不能对资 料库执 行任何动作,因为 连进去的权 利都没有。 Louis常戏称【储存者】为工 读生权限,储存者仅能输入资 料到资 料库中,输入完毕后,就无法再看到这些资 料。感觉就像找 了一位工 读生 来 key in大 量资 料到资 料库中,但又 不想让工 读生记起这些资 料或是看到其它资 料。
先假设文件或套表中没有 读者 栏位,当使用者被赋予【 读者】权限时,使用者就只能阅 读文件,而 不能编辑文件,当然 更不可能建 立文件(可执 行动作之建 立文件选项被强制 disable 了)。 不过,一但文件中有 读者 栏位, 若使用者的名称未在 读者 栏位的名称清单之中,则即使有再高的 ACL权限还是无法阅 读该文件。
至于【作者】权限就必须跟【作者】 栏位配合使用才具效用,当使用者被赋予【作者】权限,但作者 栏位中的使用者名称却是别位使用者时,这时即使该份文件是目前使用者所建 立,但因为其名称未 列于作者 栏位中,所以无法编辑该文件,仅能阅 读而已。顺带一提,如果使用者被赋予【编辑者】 (含 )以上权限,但文件中的作者 栏位中并没有这位使用者名称,使用者还是可以编辑文件,因为【作者】权限必须跟【作者】 栏位配合使用才具效用,也就是 说【编辑者】 (含 )以上权限 不受作者 栏位的约束。
至于【设计师】权限就是多 了使用 Domino Designer 来开发 AP的权限。而管 理员则是多 了修改 ACL的权限。
兹概 略整 理下表以供 参考:
管 理者 设计者 编辑者 作者 读者 储存者 没有权 利
ACL设定 V
建 立修改设计组件 V V
编辑所有文件 V V V
编辑自已文件 V V V V
增加新文件 V V V V V
读取所有文件 V V V V V
在资 料库建 立时,会在 ACL的使用者清单中看到 -Default-这笔项目。 -Default-的作用是,当使用者在 ACL中找 不到适用于自己的权限时,就套用 -Default-的权限。也就是 说,凡名称未明 列在 ACL中或未包含在 ACL的群组中,就套用 -Default-的权限。在开发 AP时 若无特殊需求, -Default-通常都设定为编辑者。
您还会看到 LocalDomainServers群组与 OtherDomainServers群组。顾名思义,只要是与目前资 料库的所在服务器位在同一 Domino网域的服务器都会自动包含在 LocalDomainServers群组中,除非您去 names.nsf中 更改此群组文件,那又另当别 论了 Orz。所以此群组预设权限是管 理员,主要是为 了让相同网域内的服务器可以进 行抄写作业。至于 OtherDomainServers群组就是跟 LocalDomainServers相反 了,因为此群组的成员均为 不同网域外的 Domino服务器,而且预设是无权限。有些集团企业因为有一个以上的 Domino网域,所以可能会 利用此群组 来达到某些跨网域存取的需求。 不过,在达成此 类需求时,请先手动把那些位于 不同网域的服务器名称加到 names.nsf中的 OtherDomainServers群组文件喔。
最后要谈到 Anonymous这个特殊项目,这是要手动新增给 Web AP使用的。也就是当未透过 Web ID & Password登入的使用者,均会被视为 匿名者并套用 Anonymous项目的权限。 若 Web AP未设定此项目时,当您使用浏览器开启资 料库时,系统就会给您一个警告,要求您到 ACL中新增此一项目喔。请特别注意,在开发 Web AP时 若无特殊需求,请将此项目设为无权限,否则您资 料库中的资 料可能就会在网 路上趴趴造 了 ~~。
许多初学 Lotus Notes( Lotus Notes以下简称 Notes)的朋友常常会因为 Notes 学习范围太广、教育训 练课程太贵、中文资 料太少 ?等等因素,而 不知该从何开始入门 学习。 不过因为这些因素而放弃的话,其实是非常之可惜的,毕竟 Notes的功能及其整合性在群组软件 领域中,仍然是 领先其它群组软件的佼佼者。
Louis为 了让许多初学 Notes的朋友可以快速上手,所以决定着手撰写此系 列的文章,希望以最浅显 易懂的白话文 来为初学者建 立 Notes程序设计最基本的观 念(但会 不会中断 不敢保证 :p)。 不过既然是「随笔」,所以一些顺序的编排就 不会那么的有系统。另外,在章文中虽然偶尔会提到一些技术观 念,但并 不属于高深的技术文件,纯粹只是观 念养成的文章。 若您想进一步了解文中提及的观 念时, Louis「强 烈」建议直接 参考 Notes程序设计 说明资 料库。当然,本系 列文章中 若有讹误还请各位前辈高手多多指教。
二、 Notes 学习方向
Notes的 学习方向主要分为程序设计与系统管 理两部份,一般通称为 Notes AD( Application Development)与 SA( System Administration),而这也是 IBM官方的 说法。 不过,有时候 AD也有人称为 AP,而 SA则常会与 IT界常用的系统分析( System Analysis)搞混,所以在与其它朋友交 流时可千万 不要鸡同鸭讲。
但 不论是 Notes AD还是 SA的知 识,这 两者并无明确界线,而且 两者其实是相辅相成的。以 ACL的设定 来讲,就无法明确归纳至 AD或 SA任一范畴,因为 不管是在开发应用程序(应用程序以下简称 AP)或是管 理 Domino系统, ACL的设定都是必须的常 识。另外,在开发 Web AP时,为 了让浏览器使用者可以正常浏览存取 Web AP的内容与资 料,也须要先在服务器上做一些设定,而这也是开发人员所须要 了解的。
所以就 Louis个人的观点而言,千万 不要将自己的角色局限在程序设计师或系统管 理员而排斥 学习任何一方面的知 识。因为如此只会让您在执 行一些任务时捉襟 见肘罢 了。接下 来就让我们进入的正题吧 !!
三、 Notes资 料库的分 类与基础结构
在 学习 Notes AP开发的第一步骤,就是要先对 Notes资 料库有所了解,如此才 不会因为观 念不足或是错误而导致在开发过程中产生阻碍。所以 Louis先整 理一些观 念让您稍微了解:
(一) Notes资 料库的分 类
以目前市场上的资 料库产品而言,就资 料型态、功能性或配置方式分成好几 类, 例如最常听到的就是关 联式资 料库( Relational Database),通常简称为 RDBMS或是 RDB,而最具代表性的就是 Oracle、 DB2、 Informix、 SQL ?等等, 不过这 都是要付授权费,如果是免费的,目前最红的该属 MySQL 了 (Notes都可以跟这些资 料库整合喔 ~~)。
就资 料型态而言, Notes属于文件式资 料库而非关 联式资 料库。很多初学 Notes的朋友对文件式资 料库这名词通常 都会很疑惑,一是因为网 路上很难找到相关信息,二是对 Notes还 不是很了解。 不过在之后的内容中 Louis会 陆续 说明文件的观 念。
就资 料库的配置方式而言, Notes则被归 类在分布式资 料库,为 什么呢?因为 Notes 的资 料库可以藉由抄写机制,将各资 料库抄本分置到各服务器与客户端中。分布式资 料库的 理论在网 路上有很多资 料, 若有兴趣的话可以到各大搜寻引擎网站找找。
(二) Notes资 料库的结构
每一个 Notes资 料库在 windows OS下是以档案格式存在的,其扩展名通常是 NSF,也就是 Notes Storage Facility的简写,翻译成中文就是 Notes储存设备。至于扩展名 NTF也是 Notes范本资 料库,全名是 Notes Template Facility,是用 来产生一般资 料库的范本。也就是 说,您可以 利用模板资 料库 来新建一个资 料库,而此资 料库中的设计是与模板资 料库的设计一模一样的。
按照官方的 说法,每个 Notes资 料库是由四个基本组件所组成:
1.ACL:
就是 Access Control List,一般翻译成存取控制清单,或是权限控制清单,顾名思义就是让资 料库管 理员可以指定使用者对该资 料库执 行何种动作。
2.设计组件:
是指套表、视界、外框、图文框、 领航员 ?等等组件,而这些 都是 Notes资 料库最最基础的组件,也是用 来让资 料库可以与使用者互动的基本组件,没有这些组件,资 料库即无法运作。
3.所谓 逻辑:
是指程序设计师在资 料库中所撰写的程序语言, Lotus Script、公式、代 理程序 都是。主要是要运算处 理资 料库中的资 料,或者达成某些自动化的作业。
4.资 料:
是指储存在文件中的文字、 数字、日期时间、附加档案 ?等等信息。
四、资 料的安全控管
若要简单描述 Domino对资 料的安全控管,基本上由外而内可以分成几关:服务器 è资 料库 è文件 è隐藏公式。
以服务器这一关 来说,是在服务器文件中控管的, 例如允许或 不允许哪些使用者存取此服务器、允许或 不允许哪些使用者可以在服务器上建 立或删除资 料库 …等等。
若是使用者被赋予存取服务器的权限,就会进入到资 料库安全控管这关,而这关的安全控管就是由资 料库 ACL 来决定的。
再 来是文件的安全性控管,这是经由套表属性之安全卷标下的选项,以及 读者与作者 栏位 来处 理的。
最后就是隐藏公式,其实,隐藏公式根本就 不算是安全性控管的方法,这只能 说是开发技巧。因为即使透过隐藏公式把套表中的特定 栏位隐藏起 来,使用者仍然可以透过文件属性方块看到各 栏位中的资 料。
五、 ACL
既然我们在前面多次谈到 ACL, 不稍微跟他交个朋友好像 说不过去,所以在这儿就为大伙儿引荐他吧,呵呵。在 ACL中主要有几种组件设定:使用者 类型、权限 类型、执 行动作。
设定使用者 类型是为 了避免 ID被误用。举 例来说,通常服务器在资 料库 ACL中都是管 理员权限,假设服务器 ID被有心人士盗用,可能就会造成极大的破坏。所以为 了防范有心「人」士进 行这种破坏 行动,就必须在 ACL中正确设定为服务器 类型,如此该人士即使拿到服务器 ID也没办法使用 Notes client 来对资 料库执 行任何活动。因为,服务器 不是「人」,所以 不会使用 Notes client( 不过在系统管 理中, Louis强 烈建议把服务器当作是「人」,这样有助于管 理概 念的建 立)。但相对的,如果未设定适当的 类型,也会导致某些动作无法执 行。
再 来是权限 类型,依权限低高依序有七层-没有权限、储存者、 读者、作者、编辑者、设计师、管 理员。【没有权限】当然就 不能对资 料库执 行任何动作,因为 连进去的权 利都没有。 Louis常戏称【储存者】为工 读生权限,储存者仅能输入资 料到资 料库中,输入完毕后,就无法再看到这些资 料。感觉就像找 了一位工 读生 来 key in大 量资 料到资 料库中,但又 不想让工 读生记起这些资 料或是看到其它资 料。
先假设文件或套表中没有 读者 栏位,当使用者被赋予【 读者】权限时,使用者就只能阅 读文件,而 不能编辑文件,当然 更不可能建 立文件(可执 行动作之建 立文件选项被强制 disable 了)。 不过,一但文件中有 读者 栏位, 若使用者的名称未在 读者 栏位的名称清单之中,则即使有再高的 ACL权限还是无法阅 读该文件。
至于【作者】权限就必须跟【作者】 栏位配合使用才具效用,当使用者被赋予【作者】权限,但作者 栏位中的使用者名称却是别位使用者时,这时即使该份文件是目前使用者所建 立,但因为其名称未 列于作者 栏位中,所以无法编辑该文件,仅能阅 读而已。顺带一提,如果使用者被赋予【编辑者】 (含 )以上权限,但文件中的作者 栏位中并没有这位使用者名称,使用者还是可以编辑文件,因为【作者】权限必须跟【作者】 栏位配合使用才具效用,也就是 说【编辑者】 (含 )以上权限 不受作者 栏位的约束。
至于【设计师】权限就是多 了使用 Domino Designer 来开发 AP的权限。而管 理员则是多 了修改 ACL的权限。
兹概 略整 理下表以供 参考:
管 理者 设计者 编辑者 作者 读者 储存者 没有权 利
ACL设定 V
建 立修改设计组件 V V
编辑所有文件 V V V
编辑自已文件 V V V V
增加新文件 V V V V V
读取所有文件 V V V V V
在资 料库建 立时,会在 ACL的使用者清单中看到 -Default-这笔项目。 -Default-的作用是,当使用者在 ACL中找 不到适用于自己的权限时,就套用 -Default-的权限。也就是 说,凡名称未明 列在 ACL中或未包含在 ACL的群组中,就套用 -Default-的权限。在开发 AP时 若无特殊需求, -Default-通常都设定为编辑者。
您还会看到 LocalDomainServers群组与 OtherDomainServers群组。顾名思义,只要是与目前资 料库的所在服务器位在同一 Domino网域的服务器都会自动包含在 LocalDomainServers群组中,除非您去 names.nsf中 更改此群组文件,那又另当别 论了 Orz。所以此群组预设权限是管 理员,主要是为 了让相同网域内的服务器可以进 行抄写作业。至于 OtherDomainServers群组就是跟 LocalDomainServers相反 了,因为此群组的成员均为 不同网域外的 Domino服务器,而且预设是无权限。有些集团企业因为有一个以上的 Domino网域,所以可能会 利用此群组 来达到某些跨网域存取的需求。 不过,在达成此 类需求时,请先手动把那些位于 不同网域的服务器名称加到 names.nsf中的 OtherDomainServers群组文件喔。
最后要谈到 Anonymous这个特殊项目,这是要手动新增给 Web AP使用的。也就是当未透过 Web ID & Password登入的使用者,均会被视为 匿名者并套用 Anonymous项目的权限。 若 Web AP未设定此项目时,当您使用浏览器开启资 料库时,系统就会给您一个警告,要求您到 ACL中新增此一项目喔。请特别注意,在开发 Web AP时 若无特殊需求,请将此项目设为无权限,否则您资 料库中的资 料可能就会在网 路上趴趴造 了 ~~。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24998103/viewspace-695422/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/24998103/viewspace-695422/