【IT168 专稿】
1.Ray Ozzie是谁的英雄?
97年,第一次接触Lotus Notes 4.5版本就被她漂亮的界面、丰富的功能和包装精美的黄皮书所吸引。那个时候学校里面教授的都是C语言之类的单机技术,最多自己买本书玩玩VB之类的,动态Web技术还不太流行,学ASP的很少,Lotus技术在学校里面更加显得冷门了。研究冷门技术的好处就是容易被别人误以为是软件高手,因为Lotus当时的版本就可以轻易的实现动态的内容发布,方便的建设邮件服务器,灵活的工作流应用,这些如果用ASP实现可是需要大量的代码工作的。之后的很长时间,一直从事Lotus方面的技术工作,倾注了太多的精力和感情,好像最近几年,研究这个的的开发者越来越少了,很多公司希望采用更加开放的架构,虽然Lotus之后的版本已经提供很多开放的标准了。之前的很多同事,有的转行了,有的自己成立了公司,也做500强公司的Lotus项目……
Ray Ozzie这个Lotus Notes的创造者,应该曾经是我们这些热爱Lotus技术的英雄吧。在2008年,洛杉矶微软PDC大会上,Ray Ozzie作为微软首席软件架构师正式向与会的上万名开发者宣布推出Windows 7测试版,并号召所有开发者投身Windows 7的Beta测试中。对于他的云计算计划,很多人期待或否定。观看他发布会视频的时候,我就在想如果没有Ray Ozzie,没有Lotus Notes我的生活会怎样?也许这就是命运?
但是从另外一个方面因为Lotus群件技术的特殊性,学习和研究Lotus,教会了我远远超越Lotus本身的很多东西。比如:AS400、Unix、防火墙、Portal、Java、Smtp、Pop3、Open-relay、Ldap、全文检索思想等等。虽然Lotus技术已经不再流行和火热,但是Lotus Domino/Notes的很多设计理念都是非常领先的,这些思想也不一定是Lotus发明的,但这些基本上都是Lotus率先开始在产品中应用的。下面就列举几个Lotus的先进理念及几种方便实用的功能,并谈谈协作系统的展望。
1.1 界面的设计
Notes界面的导航标签技术和多窗口概念。
对于导航的标签技术,在Firfox采用(当然firfox不一定是借鉴的Lotus),使得IE缺失此功能倍受差评,在IE7.0中才加入了该功能。这点上Notes至少领先IE有10年吧。
Notes界面著名的多窗口功能,应该是最早的Portal的原型。Portal中最主要的Portlet技术,就是使得用户可以在一个界面单一入口访问基于角色的各种应用系统。
1.2 数据存储和展现
任何的应用系统,说白了无非就是数据展现、数据存储、应用逻辑三个层面。
在Domino中保存数据,前端无论是基于客户机还是浏览器,只要使用简单的@command[filesave]就可以完成。
这也正是后来在J2EE框架中,广泛采用的OR Map的工具,比如开源的Hibernet、商业的Kodo TopLink等产品所追求的。即不需要编写SQL语句,通过Java对象和数据库表的映射,操作Java对象也就同时对于数据库进行操作。
相比Domino表单的所见即所得的设计技术,这些基于XML文件的配置方式就复杂了很多,虽然之后很多的插件支持可视化,但广泛的采用比Lotus要晚了好多年吧。
对于数据的展现,实际的应用中很多情况,同一数据源信息,需要根据用户角色的不同,展示不同的样式或格式。Lotus中提供了两种方式的操作:1.著名的根据公式条件隐藏的方式,2.设计不同的表单,展现视图可以根据要求对同一数据实现不同的展现方式。第2种方式正是体现了数据和展示的分离技术,也反驳了初识Domino的,往往会有Domino展示和存储是绑定的误区。后来流行的XML/XSL技术,实现内容和展现分离的方式,从流行角度也晚了好多年。对于方式1,在Java领域一直没有看到可视化的插件工具的出现。
1.3 企业级邮件系统
企业级的邮件系统强调的是企业级通讯录的方便寻址功能,以及安全性。发现很多公司不理解企业级邮件系统和一般邮件系统的区别,其邮件系统的安全性比较差,一般使用SMTP协议发送。后来为了防止Open Relay,大部门邮件服务器设置了SMTP认证。但是SMTP协议在认证的过程中并不保留认证用户身份信息,这样发件人的发件地址可以设置成任何形式的邮件地址,也就无法保证可信赖性。
Lotus Domino/Notes中开箱即用的共有密钥和私有密钥机制保证了传输过程中的安全和可信赖性。
1.4 中继功能
中继功能的一种重要的用途,就是类似软件的VPN。特别是对于跨国或集团公司,一般会采用分布式的方式来部署邮件系统,对外需要实现在Internet上实现对于内部邮件或OA系统的访问,这方面Lotus本身的中继功能,提供了基于Notes路由的方向代理的安全访问,对外的代理服务器,只需要占用一个Internet静态IP就可以实现对内网的各个服务器的代理访问。
1.5 其他的……
最近拜访过一家世界500强公司,他们花费几百万的费用构建了公司的Portal系统,他们抱怨之一就是没有实现Portal全文检索功能,我们知道在知识管理和内容管理中,全文检索是非常重要的,不管后台的内容是如何杂乱无章的存储,就像我们每天使用的Google。这点Lotus的开箱即用的全文检索技术也是非常好用的。
Lotus天然的视图、表单、隐藏、公式、整合邮件通知等使得采用Lotus开发Workflow系统便捷和快速。
通过方便地配置实现LDAP协议的支持,LDAP在企业实现应用系统SSO,用户身份管理等方面都是非常重要的。
方便地配置实现Web的SSL等......