今天的标题贼长,大家就应该知道,我们要搞大事情,来个大部头。
内容包含四个:标准产品、解决方案、应用市场和技术框架;重点是技术框架,为了避免您一上来就头晕,我们先从简单的讲起。
首先,我们介绍的是标准产品功能,即Notes/Domino通用标准产品,从1989年Lotus公司发售该产品以来,经过35年市场考验的Domino基础平台。它是一个强大的邮件、应用和协作的企业数据基础设施平台,而Notes是用来访问Domino平台的客户机产品。目前最新的大版本是2023年12月发布HCL Notes/Domino v14版本。
先从功能的角度来介绍Domino。
Domino标准产品自带的功能非常多,Domino目录(人员群组管理)、认证支持(ID和密码验证、sso、saml、passkey、oidc等等)和证书管理、ID标识符和安全控制、开箱即用的功能全面强大的企业邮件(包括Notes客户机和Web端、移动端的待办、日历、联系人)、内置的各类应用(博客、文档库、团队空间、群组日历、讨论数据库、工作流等等流)、复制(分布式数据同步)、内置工作流引擎等等。
功能太多太多,在此基础上,平台使用者可以根据自己的需求,利用Domino Designer来进行功能开发和定制等。
另外,早在1996年发布的R4.6版本,Domino就支持各种Internet协议,例如HTTP、LDAP、POP3、IMAP、SMTP、NNTP等等,来支持各种Internet协议访问的第三方客户机,例如各种浏览器、Outlook、foxmail、apple Mail等等。
在Notes/Domino发展过程中,后来又逐步对产品加入了扩展支持,你可以理解这些功能为标准产品的一部分,也可以理解为产品自带的解决方案,是产品的一种功能扩展和延伸。
这些基于Notes/Domino平台运行的平台包括但不限于,例如时尚现代化的Verse,支持多种设备和平台,包括Web浏览器、移动设备和桌面客户端;支持https和Exchange ActiveSync协议的Traveler,方便用户通过移动设备访问Domino服务器上的邮件、日历和联系人等;支持通过浏览器直接访问Notes基本功能的Nomad Web;支持通过移动设备方式来访问Domino上的传统应用的Nomad app;支持即时消息(聊天)、截图、附件传输远程控制和在线会议的Sametime;低代码和无代码开发工具Domino Volt (现在改名为Domino Leap);连接Domino和关系数据库的标准产品HCL Enterprise Integrator;将Domino数据发布为JSON的REST API产品等等。
下图是低代码和无代码开发工具Domino Leap快速拖拽完成的应用程序,支持各种终端设备访问:
说了这么多,大家可能要么晕头转向。要么就会问,这么多产品和解决方案依旧需要我自己进行产品部署和各种功能安装配置,才能使用,其他方面考虑的因素也非常之多(硬件、操作系统、网络、安全软件、维护等),我现在就想拿过来直接使用,不光使用官方厂家的标准化产品,也想要直接使用这些扩展产品,可行吗?
在这样一个什么都讲究快速时代,当然可行。
从2020年HCL发布的Notes/Domino 11.0版本开始,Domino就容器化和一键部署功能,你可以下载专门的Domino镜像进行直接部署,需要什么功能,都可以写在或拷贝已经写好的JSON文件中,在Domino部署时,一键引用即可。
你也可以以Docker或kubernetes方式将Domino部署在云原生平台上。
如果还不了解kubernetes,可以点击我们下面一篇文章《Domino容器化部署中的kubernetes到底是什么》。
既然说到了这里,可能就会有更多的需求冒出来了。很多人说,这样还不够,企业IT应用管理需求还有很多,比如内部管理的办公自动化(OA)、项目管理系统(PM)、人力资源管理系统(HRM)、业务流程管理(BPM)、 IT服务管理系统ITSM、供应链管理系统(SCM),系统企业资源计划系统(ERP)、客户关系管理系统(CRM)等等。
Domino的确是一个能解决上述全部需求的单一平台,而且有很多成功案例。
那么针对具体的需求,我们迫切需要直接拿来即用,不管是应用还是流程,至少可以参考,需要少量的修改,而不是像以前那样,企业内部招聘人员来进行从头调研,然后定制化开发——说句题外话,其实,早些年,企业定制化开发的成果物,很多已经被拿来直接当作基于Domino上的产品和解决方案拿出来,当作单独的产品售卖。
所以,这里也有了一个新型的产品:HCL Domino应用市场。
不过,现在HCL Domino应用市场处于早期建设阶段,目前只有数百款应用,而且大多数是针对Notes/Domino平台本身的运维解决方案应用。
这时,我们今天的重磅内容就要推出了:实现企业业务协作的Domino技术框架——DomPortal。
DomPortal本身可以理解为基于Domino的技术框架,但自身也带了近百个可开箱直接使用的应用,你可以通过各种设备(PC、平板、手机)等方式来访问这些应用。
在介绍DomPortal之前,我们再从技术角度来介绍一遍Domino。
除了企业级邮件功能,Domino也是一个技术内涵非常丰富的企业级应用平台。下面列出的是其所包含的部分技术:
世界上最早的为解决群组和团队的信息共享而创造的“群件”;
NoSQL数据库技术——Notes文档型数据库;
基于业界标准的电子邮件系统:
支持基于ExchangeSync协议的邮件推送(Push Mail)技术;
开箱即用的现代化的Web邮件用户体验——Verse;
广泛的开发生态支持:
支持Java编程:使用Java编写Domino服务器端程序代码(B/S);
适合普通用户掌握的宏语言(Notes公式语言);
适合开发人员快速入门的脚本语言(LotusScript);
所见即所得的、面向对象的可视化编程技术(Domino Designer低代码编程);
在服务器端使用Javascript开发服务器端代码的SSJS技术;
内置于HTTP Web服务器的Java虚拟机(HTTP JVM)和Servlet容器;
支持Java编程:使用Java编写运行于Notes客户端的程序代码(C/S);
基于Java Server Faces的XPages技术(支持B/S和C/S);
服务器端任务调度技术(Domino服务器端的代理程序);
业界标准协议的支持:HTTP/HTTPS,IIOP,SMTP/POP3/IMAP,LDAP等;
开箱即用的应用模板(会议室和资源预定、讨论区、Blog、群组文档库等);
开箱即用的低代码平台——Domino Leap;
在现代浏览器中直接运行Notes客户端原生应用(Domino Nomad Web);
支持Docker部署;
……
其次,Domino也是一个生态圈——从技术上来说,Domino生态圈其实是Java生态圈的一个子集,毕竟Domino也是Java技术普及性的一个成功案例。从市场角度看,众多合作伙伴和客户经过多年实践,围绕着Domino开发出大量的面向业务需求的解决方案:例如大家都熟悉的办公自动化系统、企业业务过程管理平台、团队协同平台、自主可控的邮件监控和管理平台等等。同时,很多技术大拿也开发出各种适配于Domino的技术组件和开源项目:openntf.org、Domino JNA、Domino JNX、JAddins、NSF-On-Disk_Project等等。可以说,Domino生态圈的成功很大程度上依赖于业务合作伙伴和开发人员的杰出贡献,同时这也得益于Domino丰富的技术生态支持:Java技术的普及性是Domino生态圈持续发展和壮大的技术基础。
Domino社区和生态建设
最后,Domino是一个能够快速解决企业IT建设中某些痛点的“单一性平台”,也就是说用一个软件就可以解决好几个业务痛点。前面介绍过Domino具有非常丰富的技术内涵,这意味着企业引入Domino平台就等于将众多业界标准、技术生态和软件组件引入到了IT架构中,例如:Notes数据库可以解决非结构化数据的存储效率和检索效率的问题、开箱即用的电子邮件系统可以快速与Domino应用进行集成进而演化为工作流应用、使用Domino Leap低代码平台快速创建各类业务部门小应用、快速学习LotusScript或JSF(Xpages)技术以便尽早满足业务部门的应用开发需求等等。用一句话解释这个单一性平台:“Domino是一个具有丰富技术内涵的中间件平台”。也就是说,Domino里面开箱即用的技术和功能很多,而它作为中间件(MiddleWare)自身又可以帮助企业开发和运行更多、更复杂的企业应用。
那么,DomPortal是什么呢?
如果一个企业在引入Domino平台后能够进行日积月累的技术沉淀,在面对越来越复杂的企业业务需求和越来越紧迫的企业应用集成时,这些技术沉淀加上外援(外部技术力量以及其它软硬件平台)还是足以应对的。一个企业使用Domino的时间越久,Domino上的应用也就越多、越复杂,并且软件部门交付应用的效率也越高。
所以,DomPortal就是要解决企业级业务协作应用开发中的知识沉淀和效率的问题。DomPortal是基于Domino的一个企业级业务协作应用的开发和运行框架,它充分运用了Domino的优势特性,也是对Domino技术能力的补充和提升。
业务协作和办公协作的区别
DomPortal是基于Domino的一个技术框架——它分析、总结和提炼了众多客户在Domino Web应用开发中所需要的共性的东西,作为一种技术沉淀交付给客户。这些技术沉淀包括:代码集、应用开发框架(Web页面框架、后端程序框架等)、集成框架、企业业务过程管理引擎、开箱即用的文档库、全局搜索引擎、支持企业微信和钉钉的移动化应用、基于Domino安全特性的数据管理等。DomPortal提供了四个主要功能组件:
GoWebNow:控制所有Web表现层(Web页面)的Web内容管理系统。
BizFlow:企业级业务过程管理引擎,用于实现业务协作的基础。
SecurDoc:非结构化信息的有序、有规则地存储,也可以直接作为企业文档管理系统使用。
SecurKM:知识互动引擎,用于存储离散型信息碎片,也可以作为企业内部的知识问答网站使用。
DomPortal架构图
DomPortal是业务协作应用的运行框架——开发人员基于DomPortal框架开发的企业级业务协作应用(简称为DomPortal应用或DomPortal App)可以在任何部署了DomPortal的Domino服务器上运行。由于我们严格把DomPortal应用限定为“Domino原生应用”,所以这种应用具有在多个Domino版本上运行的“一次开发,随处可用”的特性。这些应用中有相当一部分是企业业务过程管理(BPM)应用,依托DomPortal丰富的集成接口和方法,可以打通企业各类软件系统,实现业务过程的集中管控。
DomPortal内置了数据引擎,并向开发人员提供封装好的类库用于操作关系型数据库系统。通过对关系型数据库系统中存储的数据进行再利用,我们可以直接提供各类业务分析图表。
业务分析图表
DomPortal开发所涉及到的开发语言有“Notes公式”、“LotusScript脚本语言”和“Java语言”。我们的理念是开发最纯粹的Domino Web应用,所以没有使用XPages/JSF技术。这意味着学习曲线很平缓,开发人员能够在短时间内(一般是3个月内)就可以独立完成业务应用开发。在开发过程中,DomPortal提供了丰富的代码集,开发人员可以直接调用已经封装好的LotusScript/Java函数。
便于初学者掌握的脚本语言和Java语言
DomPortal采用的是一种“松耦合”架构,各个功能组件可以随时启用或关闭,各个组件之间的集成已经被内置在DomPortal底层代码中,开发人员不需要关心这些技术细节,只需要专注于做好DomPortal应用即可。
降低移动化成本
同时,DomPortal内置了企业微信和钉钉的集成,Web应用可以直接作为移动化H5应用内嵌在企业微信和钉钉中使用。DomPortal应用是完全支持H5的多终端适配的Domino原生应用。用户可以通过手机、平板和PC直接访问这些应用。
一次开发,多终端访问
凡是遵循DomPortal应用开发规范的Web应用,均可以做到“一次开发,随处访问”,极大地降低了企业应用移动化成本。
获得IBM Beacon Award 2019
使用DomPortal可以开发出什么样子的企业应用呢?
今天的内容实在是太多了,我们下次再写吧。
最后欢迎搜索公众号“协作者”来关注我。