在面对悠久而知名的邮箱学习中,谈谈我的看法和理解。
首先它的历史,能干什么,为什么能成为IBM中排名第二的办公服务软件。
世界级的企业级通讯、协同工作及Internet/Internet平台。面向的都是非常大的企业用户:银行,电力,大型公司等等。使用能力也非常广:邮件收发(安全性非常高)、知识管理系统、电子商务基础、甚至是软件开发等等。处理的数据量越大,处理数据的要求量越多,它体现的能力也就越强。
当然,他也有部分缺点:双刃剑级的文档型数据库、界面UI不好看、启动慢、占用内存量大、功能多导致配置复杂繁琐、解决业务能力较强导致功能分流太大。
当然,任何事有利也有弊,不要太看重这些,个人喜欢就好。
Lotus Notes / Domino整个软件体系有一系列产品,目前我只在接触这四类:Lotus Notes(客户机)、Domino Server(服务器)、DominoDesigner(设计端)和Domino admin(管理端)。
说起邮箱功能的实现,首先就需要了解Lotus Notes内部独有的协议和邮件发送原理。
首先是邮件协议,NRPC(Notes路有协议)这是Lotus Notes内部协议,当然在调制服务器后也可以发送正常的SMTP协议,而NRPC是由IBM设定的协议(NRPC路由协议原理)。链接可以自己看看,讲的很详细,普通点来说就是服务器来控制整个邮件的收发过程,如果客户机需要查看邮件通过NRPC来收取服务器中的邮件,而发送的时候也如此,但会有一个服务器内没有找到对应收件人,就会从他里面的服务器列表中根据列表再去找收件人地址,邮件协议依旧是NRPC。
其次就是服务器中邮件的数据库了,文档型数据库,在我没有接触的时候完全不知道(本人小白无知)。主流的关系型数据库中含有一个或多个表,每个表中包含的记录都具有相同的长度,每条记录又是有固定数目的字段组成。这样给数据的存储划定了严格的界限,可以快速地存取。而在文档型数据库中没有表的概念,文档作为一个灵活型的数据结构,用来存储各种不同的数据,一个文档可以有任意数量的字段,每个字段也是任意长度。但是它会带来性能上的代价。
Java对Domino的访问通是过高级包lotus.domino进行的。根据运行时环境,这个包中的接口在其他两个包中得到一个包来实现的:
lotus.dominio.local提供了从同一计算机上的Notes/Domino软件进行调用(本地调用)
Lotus.domino.cso提供了从通过远程连接访问的Domino服务器进行调用
对于远程访问,java程序通过CORBA请求Domino服务器所提供的服务。远程类使用CORBA通过TCP\IP网络访问服务器。远程访问由以下两个部分组成:
1. 客户机通过HTTP协议获得服务器的初始化对象作文IOR
2. 客户机通过IIOP连接进一步获得其他对象
所有的数据就都在 s 里面了,这里有几篇文章讲到了收发过程,大部分内容都有了:
http://blog.csdn.net/kangkanglou/article/details/38776211
http://windindream.blog.163.com/blog/static/4935919201112811854502/
http://blog.csdn.net/hbcui1984/article/details/5676619
http://www.myexception.cn/lotus/205045_2.html
load http 打开http服务
load diiop 打开diiop服务
tell diiop show config查看diiop服务详情
需要注意的是在一系列配置后要查看diiop服务详情要注意你的服务器不是127.0.0.1,如果是的话需要进一步配置diiop服务。