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