IBM Notes/iNotes 9 之 Open Social 新特性

OpenSocial 简介

近年来,社交网站得到了蓬勃的发展,在 OpenSocial 这个概念提出之前,不同的社交网站向开发人员提供了不同的私有 API 来访问社交网站数据,这样一个应用如果需要部署到多个社交网站,需要提供不同的实现,因此很难得到重用。针对这个的问题,OpenSocial 规范应运而生。它是一套统一的接口标准,用来描述社交网络的数据规范。有了 OpenSocial,基于该通用 API 开发的社交应用程序可以运行在任意支持 OpenSocial 规范的社交网站上。真正实现了"一次开发,到处运行"。

这里需要注意,OpenSocial 组织提供相应标准和规范,但不提供实现方法。Apache 基金会的 Shindig 项目提供了 OpenSocial 的参考实现。开发者可以使用标准的 HTML,JavaScript 技术来创建基于 OpenSocial 的社交应用,这些应用称为 OpenSocial 应用,它们可以运行在任何实现了 OpenSocial APIs 的社交站点上,而这些站点也被称为 OpenSocial 容器。

OpenSocial 应用包括两种模式:gadget 模式和 RESTful 模式。本文中将要介绍的 Notes/iNotes Open Social Widget 就是基于已有的 Open Social gadget 实现的。


IBM Notes/iNotes Social Edition 9 对 Open Social 的支持

Notes/Domino 不仅仅是一个邮件客户端及服务器,更重要的,它还是一个应用开发的平台。我们可以基于 Notes/Domino 平台开发企业的各种应用程序,并且可以将这些应用程序集成到 Notes 以及 iNotes 里面。对于 Notes/iNotes 的扩展和定制,目前已经有着多种不同的开发技术,如 Notes 数据库开发,Eclipse 插件开发,XPages 开发等等。对于我们开发人员来说,我们最希望的就是我们开发的同一款应用程序,既可以运行于 Notes 中,也可以运行在 iNotes 里面,从而可以节约我们的开发成本。之前版本中的各种开发技术,除了 XPages 之外,都很难实现这一目的。IBM Notes/iNotes Social Edition 9 开始提供了对 Open Social 的支持,从而解决了这一难题。基于 Open Social 开发的应用程序,既可以运行在 Notes 客户端中,同时还可以运行在 iNotes 里。除了这一点之外,Open Social 还为 Notes/iNotes 提供了很多很方便的功能,下面我们就为大家来具体的介绍一下。

Open Social Widgets

在 Notes/iNotes 中,我们使用已有的 Notes Widget 框架来创建和管理 Open Social 应用。通过使用 Notes Widgets 框架,管理员可以将 Notes 中运行的各种应用程序打包成 Widgets,并且可以通过 Domino 策略集中的将应用部署给企业中的用户。目前 Notes Widgets 支持的 Widget 类型包括有 Eclipse 插件,Notes 数据库,web 页面,XPages 应用等等,从 IBM Notes/iNotes Social Edition 9 开始,Notes Widget 框架新增加了一种 Open Social Widgets 的类型。有了它的支持,Open Social 的应用可以打包成 Open Social Widget 的方式在 Notes/iNotes 中运行,它可以运行在 Notes/iNotes 中的多个不同的区域,包括:

  • Notes/iNotes 的侧边栏。我们可以使用 Open Social Widget 扩展 Notes/iNotes 侧边栏的应用,这对 iNotes 来说是个非常有帮助的功能。我们可以不修改 iNotes 的 form 文件,就可以给 iNotes 的侧边栏增加一个新的 Open Social 应用。
  • Notes/iNotes 中一个单独的标签页。
  • Notes/iNotes 中的一个弹出对话框。
  • 在 Notes 客户端,还支持在一个单独的窗口中去运行 Open Social 应用

曾经开发过 Notes 中 Eclipse 插件应用的读者,应该知道通过使用 Eclipse 的插件技术,我们可以给 Notes 客户端添加菜单项,并且可以监听 Notes 客户端中的各种事件。Open Social 也提供了类似的支持,我们称之为 Container Services。在 Notes 中,Open Social 应用可以向 Notes 的菜单栏和工具栏添加菜单和按钮,并且可以向邮件视图,联系人视图添加右键菜单。

图 1 是一个在 Notes 客户端中打开 Open Social Widget 的截图。在侧边栏中我们打开了两个 Open Social Widget,分别是 RTC Defects Report for Widget Team 以及 QuickQuestion。在打开的标签页中,显示了来自 IBM Connections 4 的 Activity Stream Widget。

图 1. 在 Notes 客户端中打开 Open Social Widget

嵌入式体验

一个 Open Social Widget 还可以被嵌入在 Notes/iNotes 的邮件中,因此我们就可以直接在邮件中和应用进行交互,从而提高我们的工作效率。我们可以举一个报销审批的应用程序的例子来说明嵌入式体验的功效。假设我们已经有了一个网页版的报销申请程序,在报销审批程序中提交我们的申请之后,应用程序就会给我们的经理发送一封邮件。邮件里面通常会有一个链接地址,经理需要点击这个链接地址在浏览器中去打开审批应用,在进行登录之后,经理才可以在浏览器中查看到申请的具体细节并进行审批。如果在打开邮件的时候,申请的具体内容就可以直接展现,并且审批的流程也可以在邮件中完成,那么这样就可以节约时间,提高效率,而这正是嵌入式体验的效果。

图 2 显示的正是一个嵌入式体验邮件的截图。这封邮件是来自 IBM Connections 4。当其他用户给向你分享了一个文件之后,你就会收到这样一封嵌入式体验的邮件。在邮件中我们可以直接看到文件的具体信息,包括其他人的评论等等。我们也可以直接在邮件中添加自己的评论,甚至可以直接下载文件。

图 2.IBM Connections 4 发送的嵌入式体验邮件

Notes 和 iNotes 中支持两种类型的嵌入式体验:

一种方式是直接将一个已有的网页应用直接嵌入在邮件中。这种方式对于迅速集成已有的应用程序很有帮助。在这种情况下,我们需要创建一个 Web Widget,并且启用嵌入式体验的支持。如何创建 Web Widget 并启用嵌入式体验,将在后面的部分介绍,此处不赘叙。此外,为了支持在邮件中直接打开网页应用而不用输入用户密码,我们还可以进行单点登录的配置。对于 iNotes 用户来说,iNotes 的邮件服务器和需要进行单点登录的网页应用所在的服务器需要在同一个单点登录的域中。对于 Notes 用户来说,用户需要创建一个 Managed Account。

另一种方式是将一个 Open Social Gadget 嵌入到邮件中。我们需要创建一个 Open Social Widget。如何创建 Open Social Widget 仍将在后面的部分介绍。值得注意的一点是,作为嵌入式体验用途而创造的 Open Social Gadget 必须要引用 embedded-experiences 和 embedded-experiences-render 这两个 feature 才可以在邮件中显示。

一个嵌入式体验的邮件其实就是一封 MIME 邮件。

清单 1. 带有嵌入式体验的 MIME 邮件
 From: [email protected] 
  To: [email protected] 
  Subject: Social Network: Mary Has Commented On Your Status 
  MIME-Version: 1.0 
  Content-Type: multipart/alternative; boundary="XXXXboundary text"
  Mary has commented on your status. 
  --XXXXboundary text 
  Content-Type: text/plain 
  Mary has commeneted on your status. 
  --XXXXboundary text 
  Content-Type: text/html 
   
   
   
  --XXXXboundary text 
  Content-Type: application/embed+json 
  { 
    "gadget" : http://www.socialnetwork.com/embedded/commentgadget.xml", 
    "context" : 123 
  }

其中需要注意的几点包括:

  1. MIME 邮件的 Content-Type 必须是 multipart/alternative
  2. MIME 邮件中需要包括 text/plain 和 text/html 的邮件正文部分。对于那些不支持嵌入式体验的邮件客户端,将会把 text/plain 或者 text/html 的内容显示在邮件中。
  3. MIME 邮件中有一个单独的 application/embed+json 部分,用于保存嵌入式体验邮件的数据模型。对应于我们前面说的两种类型的嵌入式体验,数据模型的类型也有两种。一种方式是 Gadget EE,对应于将一个 Open Social Gadget 嵌入到邮件中的情况。在 Gadget EE 的方式下,我们需要指定一个 Open Social Gadget 的 gadget spec 地址。我们还可以通过 context 对象,给 open social gadget 传递所需要的参数,具体用法在上面的例子里已有体现。另一种方式是 WEB EE,对应于将一个已有的网页嵌入在邮件中的情况。在此方式下,我们只需要指定一个 URL 地址。清单 2 所示的就是如何在 MIME 邮件中嵌入一个 xpages 页面。  
    清单 2. 嵌入式网页的 MIME 邮件
      From: [email protected] 
      To: [email protected] 
      Subject: Social Network: Mary Has Commented On Your Status 
      MIME-Version: 1.0 
      Content-Type: multipart/alternative; boundary="XXXXboundary text"
      Mary has commented on your status. 
      --XXXXboundary text 
      Content-Type: text/plain 
      Mary has commeneted on your status. 
      --XXXXboundary text 
      Content-Type: text/html 
       
       
       
      --XXXXboundary text 
      Content-Type: application/embed+json 
      { 
        "url" : "http://domino.com/myxpage.xsp"
      }

Open Search

Notes 客户端提供了一个搜索功能,可以对邮件以及 Notes 应用等进行搜索,同时和支持通过 Google 和 Yahoo 来搜索相关内容。我们可以通过 Open Search,动态的扩展 Notes 客户端的搜索功能,例如我们可以很方便的添加一个 CNN 搜索的功能到 Notes 客户端。

Open Search 实际上就是一段 XML 描述,表示当使用对应的搜索引擎进行搜索的时候,所要使用的 URL 地址格式。例如下面的清单就列出了添加 CNN 搜索的 Open Search 声明片段。其中最主要的部分是 Url template 属性。通常情况下,搜索引擎在搜索内容的时候,都有一定的 URL 规范,同时还会提供一个参数用于传递具体的搜索文本。例如 CNN 搜索的时候,搜索 URL 的地址是 http://www.cnn.com/search/,我们可以通过 query 参数传入我们希望搜索的关键字。 在 Open Search 声明中,搜索的关键字用 {searchTerms} 代替。用户在 Notes 中搜索具体内容的时候,Notes 代码会用用户输入的关键字去替代 {searchTerms}。例如如果用户在 Notes 中使用 CNN 搜索 IBM,那么最终的搜索 URL 就是 http://www.cnn.com/search/?query=IBM。 我们可以通过这种方式,将企业内部应用的搜索功能集成到 Notes 中。

清单 3. 添加 CNN 搜索的 Open Search 声明片段
  
	  
	  
		 CNN.com 
		 CNN.com Search 
		 UTF-8 
		 http://search.cnn.com/ 
		  
		  
	  
	 ]]> 
	  
 

图 3 展示了在安装带有 CNN Open Search 声明的 Widget 之后,Notes 中出现 CNN 搜索的选项的效果。

图 3. 安装含有 Open Search 声明的 Widget

LiveText 和 Open Social

LiveText 是 Notes 客户端中已经支持的一个功能。我们可以给 LiveText 配置一定的匹配规则,例如邮件地址,订单号等等。LiveText 可以识别出邮件或者 Notes 文档中符合规则的字符串,并且可以触发相关的操作。例如我们如果识别出了一个订单号,就可以触发一个查询订单的操作。这些操作通常是由 Widgets 来定义的,例如我们的订单查询程序是一个网页,我们就可以定义一个 Web Widget。LiveText 会将识别出来的订单号传递给我们的查询页面,并且进行提交查询。LiveText 对触发 Open Social 的应用也提供了支持。Open Social Gadget 可以定义一系列的 preference,通过 Open Social Widget, LiveText 会将识别出来的内容自动传递到指定的 Open Social Gadget 的 preference 中并且执行这个应用。

图 4. LiveText 识别人名进行人员搜索的效果

在 Notes 中创建和使用 Open Social Widgets

在上文中我们已经对 IBM Notes/iNotes Social Edition 9 中 Open Social 相关的内容作了详细的介绍,下文将重点对如何在 Notes 中创建并使用这部分功能进行介绍。

安装适宜的版本和组件

首先您需要安装 IBM Notes Social Edition9.0 版本的 Notes 客户端。安装过程中,在自定义启动项页面选择 Open Social 组件。如图 5 所示。IBM Notes Social Edition9.0 版本客户端提供了创建 Open Social Widgets 和可用于嵌入式体验的 Web Widgets 的向导界面,这些创建出来的 Widget 可以同时在 Notes 9.0 和 iNotes 9.0 中安装使用。

图 5. 安装 IBM Notes Social Edition9.0

创建 Open Social Widget

通过 Notes 自带的创建向导,我们可以快速的创建 Open Social Widget:

  1. 单击 Notes Widgets 工具栏按钮启动 Widget 创建向导,如图 6 所示。

    图 6. 启动 widget 创建向导
  2. 在弹出的配置向导窗口中,选择 Open Social Gadget 选项以便基于已有的 Open Social Gadget 创建 Widget。

    图 7. widget 创建向导的起始页
  3. "由 OpenSocial Gadget 创建 Widget"页面为创建 Open Social Widget 提供了两个入口:

    • 通过浏览 Open Social Gadget 目录创建。
    • 通过输入已知 Open Social Gadget 的 URL 创建。
    图 8."由 OpenSocial Gadget 创建 Widget"页面

    若选择"浏览 Open Social 目录"选项,点击"完成"按钮后,Notes 内置的 Web 浏览器将为您打开由 Google 提供的 Open Social Gadget 目录页面。这里为您提供了丰富多彩的 gadget 应用资源,您可以挑选一款感兴趣的 gadget。

    若选择"通过 URL 创建 Open Social Gadget"选项,输入指定的 gadget URL, 然后点击"下一步",创建向导会自动为您下载该 gadget, 之后将跳转到 Open Social Widget Feature Capabilities 页面。如图 9 所示。

  4. 在 Open Social Widget Feature Capabilities 页面中,所有 gadget 必需的 feature 默认状态都是"生效",并且不允许用户自行更改;对于那些可选的 feature, 您可以自定义是否"屏蔽"它们。

    图 9.Widget Feature Capabilities 页面
  5. 继续点击下一步,将进入"配置 Open Social Gadget 视图"页面。在这里您可以设定 Widget 在不同的位置打开时显示不同的 Gadget 视图。

    图 10. 配置 Open Social Gadget 视图
  6. 继续点击"下一步"。进入"配置 Widget"页面  
    图 11."配置 Widget"页面

    这里您可以为这个即将创建的 Widget 设置名称,同时可以:

    • 直接点击"完成",创建 Widget。
    • 为这个 widget 配置一个 action。
    • 设置当 widget 创建完成后直接在侧边栏中显示。
  7. 点击"完成"按钮,至此,新的 Widget 创建成功。你可以看到它已经被添加到"My Widgets"侧边栏中。

创建用于嵌入式体验(Embedded-Experiences)的 Web Widget

创建 Web Widget 的功能在 Notes 9.0 版本之前就已经存在,在 Notes 9.0 Social Edition 中,Web Widget 得到了进一步的增强了,可以支持嵌入式体验。创建用于嵌入式体验的 Web Widgets 步骤如下:

  1. 与创建 Open Social Widgets 相同,首先单击 Notes Widgets 工具栏按钮启动 Widget 配置向导,如图 6 所示。
  2. 在弹出的配置向导窗口中,选择 Web Page 选项。如图 7 所示。点击"下一步"按钮。
  3. "由网页创建 Widget"页面也为 Widget 创建提供了两个入口:
  • 通过浏览网页创建。
  • 通过输入网页的 URL 创建。

这里我们选择输入 URL,并点击"下一步"按钮。

  1. 在新的页面中,选择使用 HTTP GET 方式构建 Web Widget。点击"下一步"。
  2. Notes 自动下载该 Web 页面,下载完成后,点击"下一步"。
  3. 在配置 widget 页面,用户可以自定义该 widget 的名称和其它属性,与 Open Social Widget 类似。配置完成后,点击"下一步"。
  4. 此时我们进入"配置 widget 的嵌入式体验"页面,如图 12 所示。此页面是 Notes 9.0 Social Edition 中新增的功能。如果你想要让这个 web widget 能够在嵌入式体验中使用,首先需要勾选"Enable this widget for Embedded Experiences", 并且在下面的 URL 文本框中填写可被信任 URL。这里默认生成的是您在步骤 3 中输入的 URL,您也可以通过使用通配符使该 URL 更加灵活。  
    图 12."配置 widget 的嵌入式体验"页面
  5. 点击"完成"退出配置向导,至此,新的 Widget 创建成功。你可以看到它已经被添加到"My Widgets"侧边栏中。

与普通 Web Widget 相比,具有 Embedded Experiences 特性的 Web Widgets 在 widget xml 文件中添加了如下所示代码以支持嵌入式体验。

清单 4.Embedded Experiences 特性的 Web Widgets
  
  
	  
  
 

部署和配置 Open Social Widget

由于 Open Social Widget 中可能含有可执行的程序段,为了保证使用的安全性,Notes Social Edition 引入了更多的安全机制。只有通过管理员审查并批准的 Open Social Widget 才可以在 Notes/iNotes 中使用。实现这一安全机制的组件正是 Widget Catalog。

Widget Catalog 在 Notes 9.0 版本之前也已经存在了,他可以理解为一个应用商店,保存并管理着各种 Notes Widget 应用程序。用户通过连接 Widget Catalog 就可以选择安装需要的应用,自动接收应用更新,还能发布自己的 widget 应用为更多用户使用。在已有功能的基础上,Notes 9.0 对 Widget Catalog 功能也进行了增强,对于 Widget Catalog 中保管的 Open Social Widget,加入了审查和批准的概念。Widget Catalog 管理员可以通过 Review Button 了解该 Open Social Widget 的内容

图 13. 审查 Open Social Widget 的内容(之前 / 之后)

在确认 Open Social Widget 安全后,Widget Catalog 管理员可以通过点击"Approve"按钮批准 widget 的使用。这一步骤主要是对 widget 使用的规则进行配置,典型的配置有 Proxy 配置,还有 oAuth Widget 专有的 oAuth 配置。最后,widget 文档将会被添加一个受信任的签名。Open Social Widget 执行时会检查签名,只有具有受信任签名的 widget 才可以在 Notes/iNotes 段运行。

图 14. 为 Open Social Widget 配置 Proxy
图 15. 被批准的 widget

结束语

在本文中,我们首先对 IBM Notes/iNotes Social Edition 9 中 Open Social 相关的新功能进行了介绍,然后对如何创建并使用这些新功能提供了 Step By Step 的说明,希望这些内容可以帮你更好的了解我们的产品。如果您想更加深入的了解 Open Social, 了解 Notes/iNotes, 建议您去阅读我们在参考资源列出的文章。

你可能感兴趣的:(IBM Notes/iNotes 9 之 Open Social 新特性)