标签:lotus-notes
本文想根据国外的状况简略谈谈Domino开发领域的变化和动态。时间上从XPages的引入开始。
V8.5.0引入了全新的XPages开发。在随后的小版本中,在性能上做了许多改进。从V9.0开始,将原来社区开发的Extension Library纳入产品。Extension Library中的控件补充了标准控件的一些功能上的空白,但是在设计端的易用性和文档的完善上,远不如标准控件,所以说使用时与其说是学着用,不如说是试着用。
XPages是IBM为了应对现代web开发迟来的发明。它的引入给Notes客户端带来冲击(虽然如果继续坚持陈旧的客户端技术不更新,Notes也会消亡),也再次给IBM带来战略上的两难选择:XPages只需要浏览器,偏向它发展客户将不再购买客户端,虽然服务器端可以按用户授权收费,但会导致Notes/Domino平台的单位授权价格下降。如果坚持在客户端的投资,与XPages形成不必要的竞争和浪费,而且基础技术架构不改变的话,很难有起色。其中IBM的策略是模糊的——允许在Notes客户端里运行XPages,即所谓的XiNC技术,但是这样在应用程序启动前要将整个程序从服务器下载到本地,几乎没有什么公司会考虑采纳。接下来IBM的策略还是游移不定的:继续发展和完善XPages技术,提高Domino在web平台上的竞争力。使得客户端能够直接运行服务器端的XPages程序,让客户端和浏览器在XPages面前处于公平的地位。开发Notes的浏览器插件,使得用户能在浏览器中访问传统的Notes应用程序,延续Notes客户端和传统应用程序的生命。
IBM在完善XPages在桌面浏览器上的展现,增强在其他大小屏幕上特别是手机上的展现。例如Bootstrap的responsive design是业界对多尺寸屏幕的通用解决方案。IBM早期推出的OneUI主题因为不符合此设计已没什么前途。开发者社区有将Bootstrap加入到XPages的扩展。
自从V8引入Eclipse富客户端平台和V8.5加入基于JSF的XPages,IBM就为Domino设定了全面拥抱Java的技术路线图。Eclipse富客户端是一个OSGi容器,传统的Notes数据库摇身一变为OSGi bundle也就是Eclipse的插件来运行。Domino服务器随后也加入OSGi容器,当http进程启动时,通过JNI启动OSGi容器,Servlet容器和XPages运行环境都是作为OSGi bundle加载运行。有了OSGi容器,Domino藉由Java扩展功能就变得和世界同步。
在XPages运用Java的好处,我已有专文介绍。麻烦之一是所写Java用到的自己开发的或第三方类库,存放在数据库中是无法在多个应用之间共享。过去唯一的方法是将jar文件放在Java虚拟机的类库文件夹里,现在有一种新的选择,就是编写成OSGi插件,Notes客户端和Domino服务器都可以通过将插件放在指定文件夹或导入特定数据库的方式,安装OSGi插件。Extension Library和下面提到的Wink的类库就是作为OSGi bundle安装到服务器上的。
利用OSGi插件,还可以用Java语言来开发运行在服务器上的任务,代替以往用C来编写的困难途径。
RESTful的web service流行业界已很多年,Domino增加的Domino Access Service就是以这种方式来读写文档和视图数据,它背后基于的是IBM和HP投资的Apache Wink——一种用Java编写RESTful的web service的方案。开发人员也可以编写自定义的RESTful web service,Extension Library就利用了此基础。
RESTful web service使得一个Notes应用程序可以单纯作为一个数据库来使用,业务逻辑和视图都保存在另一个Notes应用程序里,甚至完全使用另一种开发技术。另一方面,XPages运行环境和某个Notes数据库里包含的XPages应用程序代码完全可以部署在其他Java服务器上。这样就可能让运行在某台Java服务器上XPages应用程序通过RESTful web service访问部署在另一台Domino服务器上的数据库,这样的图景就像Java或其他语言的应用程序与关系型数据库的关系。IBM将XPages虚拟化到自家的Bluemix云平台也正是采用这样的架构。
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:lotus-notes
原文地址:http://blog.csdn.net/starrow/article/details/49046803