跳转到主要内容

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在 developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在 developerWorks 发布的内容一同显示。

所有提交的信息确保安全。

  • 关闭 [x]

当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

所有提交的信息确保安全。

  • 关闭 [x]

开放标准、开放源代码和 Domino 6:第 1 部分: Domino 6 开放标准速览

Raj Balasubramanian (Raj_Balasubramanian@us.ibm.coml), 咨询 IT 架构师, IBM Software Services for Lotus (ISSL)
Raj Balasubramanian 是 IBM Software Services for Lotus (ISSL)部门的咨询 IT 架构师。他现在从事客户履约工作,为客户交付应用程序和基础设施相关的项目。他兴趣广泛,从技术到历史以至物理学的各个范畴都有所涉猎。在充裕的空余时间里,他很乐于跟儿子们谈论机器人。

简介: 本系列文章由三部分组成,第 1 部分快速概述 Domino 6 中实现的开放标准。然后介绍几个开放源代码项目,后面的两部分将更详细地考察这些项目。

发布日期: 2004 年 4 月 01 日
级别: 初级
访问情况 : 1302 次浏览
评论: 


随着以 Linux、Apache 和其他项目为代表的 开放源代码运动的出现,IT 领域出现了很大变化。在过去的几年中,一些有影响的组织(联盟、工作组和委员会)设计了 IT 系统的标准。这些工业标准(统称为 开放标准)是为了降低集成来自不同厂商的产品所带来的挑战。

开放源代码运动最近从主流 IT 公司得到了大量的支持,其中包括 IBM、Sun、Oracle、Computer Associates 和 Novell。这使得开放源代码运动从学院和少数人的选择走向主流。(作者的儿子甚至有他自己的 Linux 桌面!)

本系列文章包括三部分,考察了 Domino 6 如何实现各种不同的开放标准,以及如何使用开放源代码完善和扩展 Domino 6 的功能。第 1 部分中,我们讨论 Domino 6 实现的开放标准,并介绍将在后面的文章中讨论的几个重要的开放源代码项目。第 2 部分和第 3 部分将讨论如何使用一些已有的开放源代码项目扩展 Domino 6 的功能。这些文章将包括可以工作的示例代码和软件包。

本文假设您是一位熟练的 Notes 应用程序开发人员。

开放标准

一些开放标准体制定了标准、规范和 RFC(请求注释)。本文中涉及到的一些重要标准体包括:

与 Domino 6 有关的开放标准可以分成两大类:Internet 协议、应用程序和数据协议。

Internet 协议


我们首先分析与 Internet 有关的协议。下面是本系列文章中将讨论的一些重要协议和相应的 RFC:

名称 RFC
Hypertext Transfer Protocol(超文本传输协议,HTTP/1.0) 1945
Hypertext Transfer Protocol(超文本传输协议,HTTP/1.1) 2616
Session Initiation Protocol(会话发起协议,SIP) 3261
Session Initiation Protocol(SIP)--Specific Event Notification 3265
Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile(Internet X.509 公共密约基础设施证书和证书撤销列表子协议) 3280
Definition of the inetOrgPerson LDAP Object Class(inetOrgPerson LDAP 对象类定义) 2798
Lightweight Directory Access Protocol version 3(轻型目录访问协议,LDAP v3) 3673
LDAP Data Interchange Format(LDAP 数据交换格式,LDIF) 2849
POP3 Extension Mechanism(POP3 扩展机制) 2449
Internet Message Action Protocol(Internet 消息动作协议,IMAP4) 3348
Simple Mail Transfer Protocol(简单邮件传输协议,SMTP) 2821
Internet Inter-Orb Protocol (IIOP) CORBA/IIOP

Domino 在 R5 中支持上述多数协议。Domino 6 在其核心服务器上实现了这些标准,并通过这些标准协议公开本机功能。这使得 Domino 成为一种健壮的 Web 服务器,在向传统的 Domino NSF(Notes 存储设备)数据格式提供一幅 Web “面孔”的同时实现了 HTTP RFC。对于应用程序访问,Domino 在其 DIIOP(作为插入的服务器任务)中支持 IIOP,使 Java 能够远程访问传统的 Domino 数据格式。同时,Domino 服务器仍然可以访问 Domino 数据。此外,Domino 服务器上也有 LDAP 服务器的实现(作为插入的服务器任务),通过 LDAP 公开传统的 Domino Directory 数据。Domino 还提供了所有与邮件相关的 RFC 的实现,支持使用 POP3 和 IMAP 客户机访问邮件文件、使用 SMTP 发送和接收邮件,也支持 MIME。

Domino 可以作为 X.509 Certificate Authority(证书权威,CA)。在 Domino 6 中原有的 Notes 证书和标准的 X.509 证书结合在一起。除了作为 CA 外,Domino 在服务器和客户端完全支持 Secure Socket Layer(安全套接字层,SSL)

Lotus Instant Messaging(即时消息,原来的 Sametime)现在也支持 Session Initiation Protocol(会话发起协议,SIP),在已有的通信方法上增加了一种传输机制。在 Lotus Instant Messaging 3.x 中,作为连接两个不同 Lotus Instant Messaging 体、或者连接一个 Lotus Instant Messaging 体和一个支持 SIP 的非 Lotus 体的一种方式引入了 SIP。随着语音 IP(VoIP)和多媒体/实时协议的融合,SIP 逐渐被业界接受,现在已成为在 Internet 上建立基于信号的、类似电话的会话的事实标准。Lotus Instant Messaging 以后的版本将对 SIP 和相关标准提供更多的核心支持。

应用程序和数据协议


看一看与 OSI 模型的数据/应用程序层有关的标准,我们会看到在这个舞台上控制着各种技术标准的一些角色。其中包括:

我们将会看到,如何利用这些标准和 Domino 6 解决您所遇到的实际问题。


开放源代码

从一定意义上讲,开放源代码和开放标准已经变成了同义词。但是还有一些区别。许多开放源代码项目和一个或多个开放标准有关。多数情况下,开放源代码项目提供了开放标准体所建议的规范或标准的参考实现。比如,Apache 的 Jakarta 项目提供了 J2EE Servlet 和 JSP 规范的参考实现,SendMail 实现了 SMTP RFC,OpenLDAP 实现了 LDAP RFC,OpenSAML 实现了 SAML 规范。

开放源代码的一个挑战是最近几年出现了许多新的项目。这使得跟踪和评估不断变化和增长的开放源代码软件非常困难。另外一个挑战是一些开放源代码项目是主动维护的,另一些则由志愿者偶尔更新一次,还有一些由于数年没有活动而消亡了。

本文中将分析最近一段时间得到广泛认可和成功的开放源代码项目,重点是与 Domino 6 有关的那些项目。我们把开放标准和开放源代码项目分成不同的类别:

  • 应用程序开发
  • 用户界面/数据表示
  • 应用程序到应用程序
  • 安全

下面几小节依次讨论这些类别。

应用程序开发


我们开始对开放源代码产品的探索,首先简要介绍一些设计用于帮助应用程序开发的项目。下一篇文章中,我们将看到 Domino 开发人员可以如何利用这些标准和项目。

Eclipse
好的开发人员都需要一个集成开发环境(IDE),在选择的平台上和他喜欢的语言中进行开发、单元测试和调试。Domino 开发人员中最流行的语言有 Lotus Formula 语言、LotusScript 和 Java。Domino 的设计者为这些语言提供了一个很好的 IDE。但是,如果需要开发 Struts应用程序、C# 应用程序或者动态语言应用程序(当然更好,如 Python 或 Groovy),每种语言都需要单独的 IDE。

称为 Eclipse的开放源代码框架为希望涉足上述任何一种非 Domino 专用语言的开发人员提供了单一的 IDE。Eclipse 最初是一个 Java 开发项目,但是因为它是一个框架,为您所选择的平台或语言提供了插件开发。因为它是基于 Java 的,可以在所有主要桌面(Windows、Linux 和 Macintosh)都能运行。比如,作者曾经建立了一个 Eclipse IDE 用于编译 C、C++、C#、Java 和 Python,并使用 UML 2 建模。这种方式提供了高端的 Web 开发、J2EE 应用程序开发、XML 编辑和单元测试。所有这些都运行在单一的 Linux 工作站上。(如何启动 Eclipse IDE 请参阅上面的侧栏。)

.NET
随着 Microsoft 引入 .NET,传统的 Visual Basic/Active Server Pages/组件对象模型(COM)/Microsoft Transaction Server(微软事务服务器,MTS)应用程序都迁移到了 Visual Basic.NET、C# 和新的 .NET 框架。有一个名为 Mono的开放源代码项目,它提供了 Linux 上 C# 编译器的实现。我们将在下一篇文章中进一步讨论 Mono。

Python
自从 90 年代初引入以来,Python 已经成为一种强大的编程语言。Python 的强大在于它的灵活性和简约性。由于 Win32 Python 中对 COM 的支持,Windows 上的 Notes/Domino 编程除了 Visual Basic 之外还可以选择使用 Python。

Java
作为一种编程语言和应用程序框架,Java 的使用在近五年来得到了很大发展。有很多开放源代码项目帮助您涉足已有的刚出现的 Java 技术。 JCP(Java Community Process)是一个开放标准体,它为各种 Java API 提供规范和参考实现。比如,JSR 168 是建立 portlet 的 Java API 规范,JSR 180 是用于 J2ME 的 SIP API,等等。后面的文章中将讨论基于 Apache 的 Java 项目。

用户界面/数据表示


对于数据的存储、访问和表示,Domino 一直是一个很好的平台。另外,IBM/Lotus 敞开胸怀拥抱了 XML 及相关技术。Domino 6 本身支持 XML 函数和解析调用。XML 自身是 W3C 建议的开放标准。您可以通过 XML 规范了解详细的细节。转换 XML 数据的相关技术(如 XSLT/XPATH/XPointer)也都是标准化的。最初的 XML 解析器是 IBM/Lotus 用 C/C++ 编写的,贡献给了 Apache Software Foundation(Apache 软件基金,ASF)。

Cocoon
Apache Jakarta 的一个重要项目称为 Cocoon,其目标是用最少的编码传递基于 XML 的发布框架(使用 XML 和 XSLT)。它允许您生成 PDF 文件、XLS 电子表格或者动态网页,而不需要实际打开一个 IDE 编译任何代码。Cocoon 是一个 J2EE 应用程序,可以放在任何 J2EE Web 容器中(如 Tomcat 或 WebSphere)。下一篇文章中将更详细地分析 Cocoon。

GUI 工具箱
为了向 Unix 桌面提供丰富的客户机,您需要 GUI 工具箱使用所选择的语言建立复杂的用户界面。Java SWING 提供了一个基于 Java 的 GUI 环境。GTK+( GIMP Toolkit)是为 Unix 和 Linux 平台提供的另一个库。 GNU使用 GTK+ 建立其 GNOME 桌面。对于 GTK+ 也可以使用 C# 绑定(在 GTK# 中)。还有另一种流行的 GUI 工具箱,称为 wxWidgets,也建立在 GTK+ 上。它提供了本机 C++ 绑定,以便在 Windows、Unix、Macintosh 和 Linux 上建立 GUI 应用成。wxWindows 还有一个带有 Python 绑定的变体,称为 wxPython

SVG
Scalable Vector Graphics(可缩放向量图形,SVG)是来自 W3C 的一种基于 XML 的图形标准,为原有的网页增加了互操作性和丰富性。SVG 目前浏览器需要一个插件才能查看 SVG 图形。但是有一些开放源代码实现可以把 SVG 文件转换为 PNG 或者 JPG 文件格式。

建立 RSS 新闻阅读器

按照下述步骤可以建立基于 Mozilla 的 RSS 新闻阅读器(这些步骤在 Linux RedHat 9 便携机上验证过)。

  1. 下载 Firebird RSS Reader 插件
  2. 在 Linux 上安装 Firebird。
  3. 使用 Firebird 打开 XPI 文件(第一个步骤中下载)。
  4. 设置 RSS Reader。
  5. 创建新的书签文件夹,如 RSS。
  6. 打开 Options 对话框并进入 Extensions Section。
  7. 选择 RSS Reader Panel 并选中刚创建的书签文件夹(这个例子中即 RSS)。
  8. 访问 blog 或者带有 RSS 提要的网站并将其添加到 RSS 书签文件夹中创建一个书签。

现在,您可以从 View 工具栏中选择 RSS Reader 查看新闻提要(使用 RSS)。

RSS
Rich Site Summary(丰富站点摘要,RSS)是一种基于 XML 的连锁标准,随着“blog”的风行而迅速普及。Blog( Web logging的缩写,Web 日志)是用户或者实体在 Web 上维护的在线杂志或者日记。blog 的概念最初由用户社区推动(最初在“技术爱好者”的世界中,现在已经成为主流)。多数媒体公司,甚至 2004 年的美国总统候选人都有自己的 RSS 提要。一些大学如哈佛也提供 blog 作为一种通信媒介。Blog 之所以越来越重要,是因为它从您知道并信任的来源提供当前的信息。

Web 上的多数 blog 都提供 RSS 提要,使用 RSS 聚集器和查看程序可以有效地查看提要。第二个侧栏介绍了如何安装一种开放源代码 RSS 阅读器。通过 developerWorks 文章“ Content feeds with RSS 2.0”可以进一步了解 RSS。

应用程序到应用程序


随着分布式计算的普及,应用程序到应用程序的通信成为一个重要的问题。在尽可能光滑地通信和互操作方面取得了很大进步。在走向定义和实现分布式应用程序间互相通信的开放标准方面,OMG 的 IIOP 是第一步。随着新的 Enterprise Java Bean (EJB) 规范的发布,现在通过 Common Secure Interoperability(通用安全互操作性,CSI)在 CORBA/IIOP 和 EJB 之间有了新的、安全的互操作性。

最近 Web Service 的发展迈出了实现应用程序集成的很重要的下一步。尽管和厂商专门的实现集成还存在挑战,Web Service 提供了一种可定义的方式,在不同平台、不同运行时框架上的应用程序之间通信。因此,Web Service 现在被看作是所有分布式系统集成问题的万能药。

本系列的下一篇文章中,我们将看到如何利用 Web Service 和 IIOP 提供 Domino 6 和其他分布式系统间的应用程序-应用程序通信。

安全


安全是一个非常广泛的领域,涉及到很多主题。本文主要讨论支持可能与 Domino 6 共同使用的那些重要标准和项目的安全。本系列文章中我们讨论的三个主要方面是:目录、Web Service 安全和单点登录。

目录
OpenLDAP 提供了 LDAP RFC 的参考实现。本系列文章的第 2 部分中,我们将描述如何在 Linux 上安装和配置 OpenLDAP Server,然后在协同的 Domino 环境中运行它。

Web Service 安全
Web Service 有多种与安全有关的规范。可以找到这类规范的 完整清单。我们将讨论的一种技术是 SAML(Security Assertion Markup Language,安全断言标记语言)。这是 OASIS 维护的一个规范。SAML 定义了一种在分布式环境中传递验证、授权和属性数据标准格式。SAML 的适用范围不仅限于 Web Service,但是对本文而言,我们认为 SAML 可以解决一些 Web Service 安全问题。 OpenSAML提供了 SAML 规范的 Java 和 C/C++ 实现。

单点登录
SAML 常常被吹捧提供了一种单点登录(SSO)机制。随着企业门户的普及,SSO 成为一个热门话题。SSO 也是关于 Web Service 的讨论中的一个焦点。 Shibboleth是一个开放源代码项目,在学员之间提供联邦制的身份确认和访问控制。Shibboleth 利用 OpenSAML 实现其功能。

Kerberos是另一个开放项目(由 MIT 首创),目标是提供网络验证。Microsoft 在其 Windows 2000 Server 中利用了 Kerberos 技术。IBM 和 Microsoft 联合制定了用 Kerberos 提供 Web Service 安全的 规范


结束语

本文简要介绍了适合 Domino 6 的各种不同的开放源代码项目和开放标准。下一篇文章中,我们将介绍如何利用一些开放源代码项目(包括 Cocoon、Mono、Axis、wxPython )和开放标准(如 LDAP、RSS、XML 和 Web Service)解决 Domino 环境中的实际问题。


参考资料

关于作者

Raj Balasubramanian 是 IBM Software Services for Lotus (ISSL)部门的咨询 IT 架构师。他现在从事客户履约工作,为客户交付应用程序和基础设施相关的项目。他兴趣广泛,从技术到历史以至物理学的各个范畴都有所涉猎。在充裕的空余时间里,他很乐于跟儿子们谈论机器人。

关于报告滥用的帮助

报告滥用

谢谢! 此内容已经标识给管理员注意。


关于报告滥用的帮助

报告滥用

报告滥用提交失败。 请稍后重试。


developerWorks:登录


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 使用条款

 


当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在 developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在 developerWorks 发布的内容一同显示。

请选择您的昵称:

当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

(长度在 3 至 31 个字符之间)


单击提交则表示您同意developerWorks 的条款和条件。 使用条款.

 


为本文评分

评论

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Lotus
ArticleID=58561
ArticleTitle=开放标准、开放源代码和 Domino 6:第 1 部分: Domino 6 开放标准速览
publish-date=04012004
author1-email=Raj_Balasubramanian@us.ibm.coml
author1-email-cc=

标签

Help
使用 搜索 文本框在 My developerWorks 中查找包含该标签的所有内容。

使用 滑动条 调节标签的数量。

热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。

我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。

使用搜索文本框在 My developerWorks 中查找包含该标签的所有内容。热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。