技术开发 频道

Lotus 平台的感想及协作软件未来畅想

    【IT168 技术文章】

    1 Ray Ozzie是谁的英雄?

    97年,第一次接触Lotus Notes 4.5版本就被她漂亮的界面、丰富的功能和包装精美的黄皮书所吸引,哪个时候学校里面教授的都是C语言之类的单机技术,最多自己买本书玩玩VB之类的,动态Web技术还不太流行,学ASP的很少,Lotus技术在学校里面更加显得冷门了。研究冷门技术的好处就是容易被别人误以为是软件高手J,因为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等等

    2  协作办公软件畅享

    在协作环境中,有两个重要的对象人和事,企业中的多数OA软件及Portal技术多关注人和事的关系,对于人与人关系一般仅仅体现于简单的即时消息应用;ERP软件多关注于事和事的关系。

    OA/Portal与ERP软件能够保证的是企业管理类的,固定性质的协同工作及企业进行正常的生产与运营。但是产品创新,设计,品牌,营销等应用,往往是需要根据外界的变化不断变更的,这些应用必然需要一个灵活的开发方式。对于企业来说,越来越认识到外界的不确定性所带来的压力(比如目前的金融危机)建立创新型/敏捷型企业就尤为重要。也就是很多企业将越来越关注于人与人的关系管理,企业群体智慧价值。这些也正是Web2.0技术所擅长的,那么未来的协作软件也会逐渐融合Web2.0技术应用于企业内部。当然目前很多中国的企业创新还不是企业的核心竞争能力,这类技术的使用还需要时间。以下就列举几种主要的表现形式:

    2.1      Blogs/Wiki

    目前很多企业都实施了知识管理系统或文档管理系统,但是这些系统对于文档的管理主要是对管理类文件的管理,比如:合同文件,工程文件,ISO文件等等。但是我们的员工才是知识资产的核心,据Gartner的统计:“员工所获得的相关信息有50%-75%直接来源于其他员工,企业的数字化信息有超过80%存在于员工个人的硬盘和个人的文件”。Blog和Wiki应用可以帮助企业建立个人知识管理中心。当然对于企业级的Blog和Wiki应用我们需要考虑更多的的功能:

    2.2      企业社会化网络

    借鉴Delicious,在企业中引入社会书签功能,用户可以给用户和文档加入标签功能,及基于标签的信息聚合功能。但是企业内部不同的是,我们需要更加关注人的活动,因为企业的用户会是文档或页面的读者,作者,编辑者,管理者(在Delicious用户可以对页面或文档进行Tag,但是用户一般只能是文档或页面的读者)。而且不同用户对于不同文档类型的权重也是不同(如:HR人员创建的HR类的文件)。所以我们在设计的时候,需要更多的将“人”的表现加入进来,从而在一个企业内的搜索不再局限于只是对固定资料的检索,而是更全面的分析,记录企业中所有人写作,编辑,查询,关联文档的活动,以此来评定“人”所创造的文档的价值,进而也可以了解企业中“人”的价值。

    对于文档的价值和人的价值的体现,我们可以借鉴Google的PageRank,PageRank是基于「从许多优质的网页链接过来的网页,必定还是优质网页」的回归关系,来判定所有网页的重要性,这个算法也是Google成功的关键。在企业中我们可以设计ActivityRank,ActivityRank的计算规则如下:

    对于人员的Rank依赖:

       人员所创建和编辑的文档的数量和文档的Rank值

          查看人员,给人员设置标签,将人员加入联系人的人员的数量及这些人的Rank值

    对于文档的Rank依赖:

          文档的作者的rank

      查看文档,给文档设置标签,将文档设为兴趣的人员的数量及这些人的Rank值。

    同时客户可以根据企业的需求,调正这些影响因素的权重。每个影响的权重是可以不同的。

    2.3       Mashup

    在Web 2.0的世界中,Mash-up指的是将现有的web的应用进行组合,从而快捷的合成新的应用。在企业中,Mash UP技术使得那些不懂技术的员工能够建立自组织的(ad-hoc)协作式的“企业Mash-up”应用,以应付即时的业务需要。Mash-up是web 2.0和SOA直接的桥梁。如果说web2.0的Mash-up可以将全异的信息源聚合在一起,那么SOA的基础架构就是信息的提供者。可伸缩的、动态的、Web访问、SOA服务都是Web2.0的mash-up的原材料。
 

0
相关文章