Archive for June, 2014

IBM Connections5.0新功能介绍(3) – @功能

Friday, June 27th, 2014

@功能在微博、微信中已经广为人知。Connections 4.5的CR2版本中提供了Connections个人微博和社区微博的@功能,该功能也已经在去年的Connections公有云版本中上线。在5.0中,@功能被添加到了博客正文和评论、Wikis正文和评论、Files的评论、论坛的帖子和评论、活动的帖子、回复和待办、社区日程的正文和评论中,更大的提升了用户和Connections系统的联动。

一个被@的用户会在Connections的首页的一个Tab里看到别人@他的内容,另外一旦被@会收到邮件通知(不希望邮件打扰的话可以自行关闭@的邮件通知功能)。

@功能看似简单,但我们在设计的时候必须根据Connections的实际考虑更多的问题。比如说我在论坛里@的一个人(对方收到通知),而之后我重新编辑了帖子,又@了另外一个人,这个时候系统该如何处理两个@,是否需要给之前被@的人再发一遍通知?如果要避免多次发送,势必要求在保存@信息的时候需要额外存储帖子内被@过的人员列表。另外,如果用户@一个对该内容没有访问权限的人该如何处理?在Rich Text Editor里@功能的用户体验是什么样的?Connections用户的唯一ID是directory uuid(不具可读性),如何在@的时候做到数据和显示的分离?这些问题在互联网微博上都不存在,可却很大的影响了Connections产品的设计。

IBM Connections 5.0文档

Friday, June 27th, 2014

IBM Connections 5.0管理员文档 –

http://www-01.ibm.com/support/knowledgecenter/SSYGQH_5.0.0/admin/welcome_admin.html

IBM Connections 5.0用户文档 –

http://www-01.ibm.com/support/knowledgecenter/SSYGQH_5.0.0/user/welcome_end_user.html

IBM Connections 5.0 API文档 –

http://www-10.lotus.com/ldd/appdevwiki.nsf/xpAPIViewer.xsp?lookupName=IBM+Connections+5.0+API+Documentation#action=openDocument&content=catcontent&ct=api

IBM Connections5.0新功能介绍(2) – 社区

Thursday, June 26th, 2014

与Connections 4.5相比,5.0中社区(Communities)在管理和可用性方面有了很多提升,一一道来。

1. 社区搬家

这个功能是很多客户需要的,在内部我们也听到了相同的反馈。用户需要把一个社区放在另外一个社区下成为子社区,或者把已有的子社区升级为父社区。5.0中社区搬家功能可以允许用户自由移动子、父社区。不过该功能并没有在Web界面上提供(计划中),管理员可以公共社区的MBean命令行通过指定源、目标社区 uuid来实现搬家。搬家后Connections会根据原先和现在的社区权限和成员进行自动数据合并。

2. 社区回收站

在5.0之前,删除社区就意味着社区下的数据被物理删除,无法恢复。5.0中引入的回收站的功能,被删除的社区首先被放在回收站中,社区管理员可以在指定时间内恢复。被软删除的社区无法被用户访问到,社区内包含的应用数据如博客、活动、wikis等数据也被隐身禁止访问。

3. 社区缺省应用

如果社区内某应用是绝大多数社区用户一进来就会使用的功能,可以把它定义为缺省应用,这样在社区列表中点击一个社区链接的时候,被直接被定向到该社区应用了,导航被简化了。

4. 一键加入子社区和其父社区

在5.0中,当加入一个公共子社区的时候可以同时加入父社区,而之前必须先加入父社区,然后才能加入其子社区。

5. 外部社区

在上篇文章提到过employee.extended角色可以创建外部社区并邀请外部用户成为社区成员。

6. 社区新应用 – Gallery和Survey

Gallery取代了之前版本的Media Gallery(仍可以使用),虽然都是用Files作为后台文件存储和管理但用户体验不同。现在可以把一个folder当做一个gallery的目录,支持图片、视频的预览和播放,如果安装了IBM Docs Viewer还可以预览MS Office/OpenOffice文件。Survey的后台是IBM Forms,安装配置好后可以在社区内提供投票功能。有关IBM Forms的安装配置,可以在IBM Connections5.0在线文档中找到。

IBM Connections5.0新功能介绍(1) – 内、外部用户协作

Thursday, June 26th, 2014

IBM Connections 5.0 – 内/外部协作

Connections在应用部署场景上基本有两种。一是企业内部部署,供员工使用,另一种在公网部署,供网民使用 (如IBM developerWorks交流区),如果客户需要同时拥有两种协作模式并存的话,在5.0之前只能部署两套单独的环境。

在5.0中,我们增加了内、外部用户协作的功能,希望解决的应用场景是在单一部署下既允许员工内部正常的使用,又可以邀请外部用户登录和员工协作,如在社区共享信息、上传文件等。要解决的关键问题有两个:1) 为Connections用户添加角色以区分不同用户类型;2)保证外部用户在受限外网内工作,比如禁止查看共有信息(公共博客、社区、论坛…)、禁止搜索员工目录、限制社区管理权限等等。在5.0中我们引入了两类用户(内部用户和外部用户)和三种角色(employee, employee.extended, visitor)。其中employee和employee.extended是内部用户,employee是缺省用户角色,如果从Connections 4.x升级上来的全部用户都是employee。employee.extended和employee相比,多出的权限是允许创建‘外部内容’。在5.0中,‘外部内容‘指的是可以被受邀请的外部用户(visitor)访问到的内容。

visitor角色是外部用户,在5.0中是支持的唯一的外部角色。哪visitor能做哪些事呢?可以来看看一个visitor登录后的界面:

可以看到visitor登录后在导航条内只有社区和文件。visitor可以在文件中自由上传文件,而他在社区中的权限,概况一下:

1)visitor不能成为社区管理员;

2)visitor只能被邀请到外部私有社区;

3)只有employee.extended角色创建的外部私有社区才可以邀请visitor;

4)一旦visitor成为外部私有社区成员,它的权限基本上与employee角色的社区成员一致,可以任意在社区内创建内容,在有些功能点如员工目录浏览、完整电子名片、导出社区成员列表等上受到限制。

一个visitor要登录Connections,必须为他在LDAP和Profiles里创建记录。LDAP记录用来登录验证用户名和密码,Profiles记录用来保存其角色信息和个人的其他信息(所以要求如果客户需要使用外部用户功能时,必须要安装Profiles并且打开WPI设置 – 位于LotusConnections-config.xml内,用Installer安装后缺省打开)。在LDAP中标记一个用户是外部用户有多钟方法 – 分支、属性和Javascript,通过TDI利用LDAP上的这些值可以把外部用户导入到Profiles中。在完成了TDI外部用户导入以后,系统中会存在两类用户:employee(之前存在的用户,或者LDAP中不具备外部用户标记的用户)和visitor。如果要添加employee.extended用户,或者要改变某个用户的角色该怎么做?答案是使用Profiles MBean命令行,或者是Profiles administrative REST API。MBean命令行还支持批量更新用户角色。

在UI方面,为了醒目的标示出一个社区、文件是外部用户可参与的内容,我们在界面上用黄色的提示条、图标和用户头衔装饰的方法,时刻提醒用户这是一个外部用户可以访问到的内容:提醒用户发帖的时候,仔细拿捏一下。

安装配置上,Connections 5.0并没有为外部用户引入额外的配置文件和参数,也就是说当安装好后,系统既可以用作纯内部员工使用,也可以混合使用。一旦引入了外部用户,为了保证信息隔离,我们要求完成两个额外配置:

1) 禁止匿名访问。因为visitor不可以访问内公共内容,所以必须强制用户登录。禁止匿名访问功能在前几个版本就已经实现了,是通过在WebSphere管理控制台把‘reader’映射为All Authenticated。

2) 禁止公开缓存 (public cache)。为了提高HTTP性能,Connections会在公共资源如公共博客、论坛的HTTP response中加入publich cache control header,它们可以被cache proxy所缓存住,当有其他用户访问被cache住的link的时候可以直接从缓存服务器返回。但在启用外部用户的情况下,这些缓存会带来信息泄露的问题,因为一个visitor可以请求一个本不允许访问的公共资源链接,绕过后台应用的权限检查而读到该内容。要禁止公共缓存,需要在LotusConnections-config.xml中加入一个属性 :

<genericProperty name=”publicCacheEnabled”>false</genericProperty>

利用SSH Tunnel实现一键翻墙

Monday, June 23rd, 2014

首先,’一键翻墙‘并不是真正的’一键‘,在Firefox用此方法至少需要三键,而且这个方法的门槛不低,不仅需要一个可以提供SSH访问的中继服务器,客户端的设置也比较麻烦,所以本方法不适用非IT人士。

步骤:

1. 首先你需要一个提供SSH的中继服务器,这里以dreamhost.com为例。如果购买过dreamhost的虚拟主机服务的用户,在https://panel.dreamhost.com 上创建可以使用访问SSH的用户账户,利用该账户可以SSH到服务器:

2. 用Putty(一个Windows 上的SSH客户端软件)创建一个SSH Tunnel,以在客户端创建一个可供浏览器使用的代理服务器。首先,输入dreamhost的主机名、端口号,然后到Connections -> SSH -> Tunnels窗口,选择’Dynamic’,然后输入一个本机端口号,如9999,然后点’Add’,完成后把该配置在Putty内保存成一个‘Saved Session’: 注意保存后的配置名在之后的配置中会使用到。

3. 安装两个Firefox插件。

插件1: Proxy Selector – https://addons.mozilla.org/en-US/firefox/addon/proxy-selector/。这个插件允许在Firefox上配置多个备选proxy,并快速切换。这里我们配置一个本地localhost的代理服务器,其端口号为上步在putty的Tunnels中配置的9999端口。注意需要把代理类型设置为‘Socket 4’。

插件2:External application Button – https://addons.mozilla.org/en-US/firefox/addon/external-application-button/ 这个插件的作用是在Firefox上创建运行本地应用程序的快捷方式,用来快速启动putty命令行方式(可预先配置好用户名和密码)。

这里我们建立了一个快捷方式,指向了一个bat文件startPuttySilent.bat。此bat文件内容如下:

start “” c:\app\putty.exe -load “tournemire.dreamhost.com” -l <USERNAME> -pw <PASSWORD>

注意这里带了双引号的tournemire.dreamhost.com并不代表一个服务器,而是你在步骤2中在Putty上定义的‘Saved Session’名字,你可以取如 ‘My proxy server’这样的名字,它实际指向了putty中该配置中定义的SSH服务器地址。

-l和-pw分别为用户名和密码。如果担心安全问题,可以不指定,而是在每次启动SSH连接的时候手工输入。命令行前使用了‘start…’ 的目的在于启动后只保留putty的命令行窗户,而原始的Windows命令行窗口关闭,否则会显示两个黑窗口。

现在需要的配置都完成了,当你需要启动代理翻墙的时候只需要:

1. 在Firefox中Proxy Selector插件选项定义好的本地代理(2键);2) 在Firefox点击定义好的外部putty应用快捷方式 (1键) – 最快3键可以完成代理切换。