上海蓝晓软件有限公司
系统技术架构介绍
版权声明:本文档版权属上海蓝晓软件有限公司所有。
未经许可,任何单位、个人不得以任何方式复制、抄袭本文档的部分或全部内容。
上海蓝晓软件有限公司
.lanxiao.net
- - 考试资料.
- - .
目录
1.开发语言2 2.逻辑架构3
2.1.三层架构说明3
2.2.平台集成了多个应用配置工具4 3.逻辑结构4 4.技术特点7
4.1.跨平台7
4.2.支持多浏览器8 4.3.支持移动OA8 4.4.日常应用维护8 4.5.二次开发9 4.6.底层升级平滑9 4.7.数据关联9
4.8.集成和数据接口10 5.物理架构10
5.1.系统文件存储位置10 5.2.数据库12 5.3.数据存储13
5.4.底层配置数据库13
5.5.重要JS、CSS文件说明14
1. 开发语言
系统采用纯B/S架构,技术上:
在服务器端:以IBM Domino平台为主,使用LotusScript和java语言
在客户端:使用标准的html、javascript、xml,为了减少服务端的压力和提高用户
体验感,加入了Ajax框架。
- - 考试资料.
- - .
2. 逻辑架构
从总体上分为三层架构:
2.1. 三层架构说明
最上层的是表现层
在这一层上,用户可以使用多种不同的访问方式,进入每个用户独立个性化的“我的工作台”,并可进入系统的各个门户。在移动终端工具上,不但提供了适合于小屏幕的手机端访问,还能以与PC完全一致的最完整的界面显示,达到在客户端上的高度统一。
最下层的是平台底层
这是蓝晓OA的核心:DIY平台。包含各类引擎,用来解析处理用户在中间层构建的所有模块的功能配置、权限配置、数据逻辑定义等。
中间层是逻辑应用层
整个系统几乎所有模块都是基于“DIY平台”构建出来的,包含了所有模块的表单、流程、应用逻辑。用户可在未来自行开发、调整、增减应用模块,并构建复杂的业务子系统,实现绝大部分的业务和数据处理需求。
应用逻辑层和平台底层的分离,从技术上来看就是系统的核心代码和具体业务模块的分
- - 考试资料.
- - .
离。每个业务模块框架都是一样的,各模块所需的不同功能、表单、流程、视图等用户能看到的所有数据界面都由用户自行配置出来,体现了每个模块的业务的不同。这个特点保证了全系统的统一、稳定、可扩展、并在将来能平滑升级。
由于所有的模块都是基于同一平台构建的,因此无论在操作习惯、用户使用界面上都保持完全一致,保证了界面统一、操作简单。用户只要熟悉了一个模块,就会使用其他所有模块了。
2.2. 平台集成了多个应用配置工具
系统提供了多个实用化的工具,而这些工具也都是在浏览器上操作的,无需安装任何控件和代码开发。
3. 逻辑结构
所有的数据都存储在每个nsf数据库文件里,因此访问任何一个页面都是在访问nsf数据库。
用户在访问任何数据时,系统都会调用系统底层的“权限处理引擎”,过滤出仅他有权限访问的数据。
下面以用户登录系统开始,发起一个费用报销(feeapply.nsf)为例,详细描述系统对数据逻辑的处理过程:
1) 用户登录后,进入系统首页webpage.nsf,系统的首页数据逻辑过程如下:
- - 考试资料.
- - .
a) 首先到菜单配置库menucfg.nsf里提取他所使用的菜单配置信息,在页面上展
现菜单
b) 查找门户配置common\\portalcfg.nsf里的“我的工作台”的配置信息 c) 调用系统底层的“权限处理引擎”,根据用户的权限到各模块里收集他能看到
的数据,并展现在页面上。如:待办事宜common\odo.nsf、邮件mail\\***.nsf、各栏目的已发布信息infoissue.nsf。
2) 用户从菜单进入“费用报销”模块feeapply.nsf,模块调取数据的逻辑过程:
所有的模块都分为左右两边,左边是起草入口(在流程配置库flowcfg.nsf配置好的起草权限)和浏览的分类导航(配置在modulecfg.nsf里),右边是该用户有权限看到的本模块里的费用报销记录(这些数据就在本数据库feeapply.nsf里)。如果他是普通用户,则显示的是他申请过的报销记录,如果他是领导,则他能看到所有员工的报销记录。数据的展现内容由模块配置里定义要显示哪些内容,例如:申请日期、申请人、报销金额、事由等
- - 考试资料.
- - .
3) 用户新建“费用报销单”,系统自动完成如下数据逻辑过程:
a) 审批表的上半部分:系统调用“表单处理引擎”,展现客户DIY好的html格式
的表单,并解析出在表单配置里定义好的各类字段属性、默认值、关键字、计算值等,显示在审批单的上半部分。
b) 审批表的下半部分:系统调用“流程处理引擎”,到流程配置flowcfg.nsf里提
取流程的节点信息,并分析出下一步可提交的节点。 c) 根据节点配置,用户只能在流程配置库flowcfg.nsf的节点里规定的字段中填写
数据。如果需要选择其他相关模块的数据(如相关客户、相关项目),则会启动数据交换引擎,查询到客户有权限看到的相关数据,提供给用户选择。选择完毕后,数据交换引擎会自动带入所需信息到页面对应字段中 d) 选择下一处理节点,系统立即到flowcfg.nsf里解析下一步的的具体人员范围供
用户选择。
- - 考试资料.
- - .
4) 用户填写完毕后,提交业务数据:
a) 系统将当前页面的数据提交给服务器后台,交由“流程引擎”处理
b) 流程引擎首先解析用户在html表单的各个字段里填写的数据,并生成到后台
数据库里(就在feeapply.nsf本身)
c) 到流水号配置库sncfg.nsf查找本模块已使用的流水号,为本审批数据生成新
的流水号,并将流水号记录在本库中feeapply.nsf d) 按照流程配置库flowcfg.nsf的下一节点的配置信息,修改本审批单数据的各种
流程状态、步骤、权限等,详细记录到流程控制的相关字段中
e) 生成待办事宜,如有抄送知会的,就调用“邮件消息引擎”给用户发送邮件或
提醒消息。如果用户不是起草而是在审批,则系统还会自动处理该用户的待办事宜数据,标记为“已完成”状态。 f) 最后全部处理完毕,提示用户操作成功。
4. 技术特点
4.1. 跨平台
服务器端的操作系统支持windows和linux。
平台购买
Windows平台:无需购买Domino软件。
Linux平台:该平台上的软件Domino for linux需要用户自行向IBM购买
- - 考试资料.
- - .
Linux平台上的缺陷
1. 主要是由于用户常用的office软件无法再linux上运行,导致有以下功能的缺失或兼
容性比不上windows平台:excel导入、导出通讯录到excel、上传office文件的在线转换、服务器磁盘文件上传、小秘书的聊天功能、附件批量下载等
2. 由于linux应用客户少,不如windows平台已经有大量用户使用,所以在系统使用
的深度、广度上都不够,我们还需要额外的开发和调试,来保证系统的稳定性。 3. 但linux平台上,系统不会损失核心功能,主要是上面所列的和office有关的方便性
操作的功能
综上所述,我们推荐使用更为成熟稳定的windows平台。
4.2. 支持多浏览器
系统的所有功能技术都使用标准的W3C规范的web技术,所有的功能开发都是经过了以下所列示的浏览器的检验。
国际主流浏览器:微软IE、谷歌chrome、苹果safari、火狐firefox、欧朋opera等 国内由IE衍生出来的浏览器:360浏览器、搜狗浏览器、QQ浏览器等。但由于这
些衍生的浏览器被国内厂商做了部分的功能限制和修改,我们只能保证基本可用,但不能保证100%任何功能都支持。
4.3. 支持移动OA
蓝晓OA支持苹果的iphone/ipad、以及所有Android操作系统的手机。所有移动终端都采用浏览器访问,而非app方式。这保证了系统可以支持所有的移动终端,不会因为某个操作系统的细分版本的不同造成了的差异。
App最大的优点是界面按固定的格式定制了,操作起来更人性化,但有2大缺点: 只能展现定制好的部分数据,而无法完整展现所有的数据信息。有些业务表单非常
复杂,界面数据量也很多,就很难在app上展现,即使app能全部展示,也就失去app的最大优点:简单易操作。
系统不可能一成不变,一旦在服务器端调整了表单、数据结构、业务逻辑等,app
就得再次修改和升级,给维护带来很大工作量。而是用浏览器的方式,则完全无需考虑这类维护工作量。
4.4. 日常应用维护
所有的日常维护都在diy层面上通过浏览器,不需要编写任何代码,也无需操作服务器后台即可完成。
对某个模块进行调整的时候,都不会影响用户使用系统的其他业务模块。一旦该模块调整完毕后,用户立即就可以在该模块里使用了。
- - 考试资料.
- - .
4.5. 二次开发
除了日常一般性的维护外,还提供了二次开发能力。分为diy层面的简易快速开发(占95%)和更深层次的技术开发(占5%)。这两部分开发都有相应的《开发说明》文档。
Diy层面的简易快速开发
系统提供了许多可供编写代码扩展功能的接口位置。包括:底层函数的调用、制作html表单、在html表单里编写javascript函数、在视图上编写过滤公式、在数据交换里编写读取和更新的代码等。
这种开发的特点是:快速实现,代码短小精悍,易编写、易维护。
深层次的技术开发
这部分开发需要编写大量的代码,甚至要了解系统的代码结构。蓝晓OA全系统的源代码除了少量核心底层代码外,其他几乎都是向用户开放的。这给有开发能力的客户可以直接进行全功能的二次开发。而如果用户需要学习开发技术,可以由蓝晓进行培训。
4.6. 底层升级平滑
由于系统采用了三层架构,平台的升级都是针对最底层的核心功能进行的,因此只要核心底层不被修改,系统即可保持持续不断的平滑升级,而用户自行二次开发的模块和功能也都不会受升级影响,功能可以完整保留。
4.7. 数据关联
采用独创的“数据交换”技术,实现不同业务模块之间的数据查询、过滤、提取、和更新,并且都是在浏览器上简单配置即可完成。
- - 考试资料.
- - .
用户可在流程的具体节点、资料库的模块配置里设置多个读取和更新的数据交换配置,平台底层的数据处理引擎将分析这些配置,并按配置要求提取所需数据,或更新指定某个应用模块的数据。
4.8. 集成和数据接口
系统可以与windows AD集成身份认证,并实现与其他系统的单点登录。
在与第三方系统进行数据互访的数据接口上,系统采用了标准的Web Service接口,例如:
1、 在OA中起草审批单,能获取到第三方数据库的数据,呈现在OA审批单上
2、 在OA审批流程结束时,审批单上的数据能直接写入到第三方数据库,或通过第三方系
统提供的Web Service接口写入数据库
3、 第三方系统可以通过OA系统提供的各类Web Service接口,访问到OA系统里的所有数
据
5. 物理架构
5.1. 系统文件存储位置
系统的所有程序、数据库等存储位置如下:
- - 考试资料.
- - .
蓝晓OA系统是绿色安装的,所有文件都安装在一个目录下,并可安装在任意目录下。可方便地移动到其他目录或磁盘下。这就意味着备份和恢复也非常简单,备份时只要备份安装目录即可,备份时无需停机。而恢复时,只要将安装目录恢复即可。
整个系统的目录除了平台软件本身的各类exe文件外,主要分为程序目录、web资源文件目录、应用数据库目录和邮件目录。
程序目录:即ntf目录下,这里都是系统的底层程序所在。 Web资源目录:即Html目录,主要是js、css等各类资源文件
应用数据库目录:主目录从weboa开始,下面分为common目录(系统的公共配置
- - 考试资料.
- - .
数据库),以及每个机构完全独立的一个目录(如果是单一架构,则只有一个目录,如果是集团架构,则总部使用zongbu目录,各分支机构使用各自独立的目录)。如下图,在web上可以看到有多个机构,在数据存储上就分别对应的有多个目录对应:
邮件目录:即mail目录,这里存储的每个每个用户一个邮箱文件
5.2. 数据库
所有数据存储在IBM Domino的数据库中,系统通过内置的数据接口可以读取或更新其他数据库的数据,如sql server/oracle。
- - 考试资料.
- - .
5.3. 数据存储
全系统的数据库文件名是.nsf,每个nsf文件代表一个数据库,每个数据库对应一个模块,如果是集团型架构下,则每个目录下各有该机构的nsf数据库。
所有的用户录入、上传的数据,包括表单、文件附件、图片等,都按所属模块,存储在该模块对应的nsf数据库文件中。
以费用报销模块为例:费用报销模块对应的数据库文件是feeapply.nsf,用户录入的所有费用审批单数据、上传的附件、以及领导的审批意见等,全部存储在这个feeapply.nsf数据库文件中。
其他配置信息分别存储在各个系统底层的配置库里。
5.4. 底层配置数据库
除了应用模块的数据,就存储在该应用模块对应的数据库本身外,系统还有很多配置信息,分别存储在不同位置。
- - 考试资料.
- - .
目录 data 文件名 domcfg.nsf oanames.nsf maintain.nsf 用途 登陆界面,如果要修改登录界面的架构,就需要修改这个模块里面的“$$LoginUserForm”表单; 通讯录、组织架构,包含帐号、部门、群组、岗位等 系统管理工具(用户注册、组织架构调整等等) 首页模块(登录OA之后显示的那个页面) 蓝晓产品授权模块。此模块没有NTF,更新的时候是直接替换更新。替换之前一定要先退出服务器,然后才可以替换。 工作流授权代理模块,路径: 选择人员、部门、群组、岗位等对话框的模块 待办事宜、已办事项模块 日程安排模块 蓝晓小秘书模块 门户、我的工作台的配置信息 系统配置模块 注:syscfg.nsf在weboa/zongbu目录下也有一个,是属于每一个公司的配置模块,在更新之前需要明确你拿到手的“syscfg.nsf”是common目录的还是zongbu目录的syscfg.nsf 流程配置。 关键字配置。这个模块和COMMON目录下那个模块文件名相同,但功能是不一样的,大家请注意。 模块配置。这是我们系统中最核心的模块之一。所有自定义模块都是通过此模块来创建的,并且所有模块的配置信息都是存储在这个模块里面。 系统预警、提醒配置信息 系统所有流水号规则的配置信息 所有用户DIY表单的字段定义信息 报表配置 菜单配置信息 weboa weboa\\common webpage.nsf Master.nsf shouquan.nsf xmlselect.nsf todo.nsf schedule.nsf winfreeinfo.nsf Portalcfg.nsf syscfg.nsf weboa\\zongbu flowcfg.nsf syscfg.nsf modulecfg.nsf Alertcfg.nsf Sncfg.nsf Fielddefine.nsf Reportcfg.nsf menucfg.nsf 5.5. 重要JS、CSS文件说明
JS文件位于:html\\common\\js目录下。 CSS文件位于:html\\1\\form目录下 form.css 全系统公用的样式定义。定义了字体大小、颜色、页面布局等各个方面。 路径:html\\1\\form\\form.css 蓝晓基础JavaScript框架库,包含所有通用功能以及日历控件、数据交换、提交检测等通用代码。 general.js - - 考试资料.
- - .
flow8.js form8.js Dongtaitable9.js httpfile.js 工作流8.0(WinFlow8.ntf)的专用JavaScript库。含有工作流所必须的一切功能。 和表单操作(含自定义表单的处理)相关的JavaScript库 处理动态多行表的JavaScript库 处理和附件相关的JavaScript库 - - 考试资料.
因篇幅问题不能全部显示,请点此查看更多更全内容