代码改变世界

办公自动化中最有技术含量最难的模块是什么?

2006-08-30 16:14  Jacky_Xu  阅读(762)  评论(1编辑  收藏  举报
 对于普通用户来说一个办公自动化系统来说初看好像都差不多,国内的同行业的OA的模块每个厂家都有,甚至有些OA的模块还特别多,进去一看倒处都是功能,叫人很难理清思路.初始还以为功能很不错,但是仔细一分析每个模块就会发现有很大的区别.

下面以OA办公自动化系统的开发为例对各个比较难的模块进行说明:

1) 办公自动化中最核心最难的模块"流程引擎"

  可以说OA办公自动化好与不好都集中在流程这一块.光从开发时间上来说,对于一个好的工作流模块一个企业至少要投入2-3个一流的开发人员需要花大至一年左右的时间才能完成一个成熟、功能强大的工作流软件.国内有很多公司专门从事工作流软件的开发,他们在这一个模块上花的时间比有些OA开发商整个OA产品的开发时间还要长几倍。

一个强大的工作流引擎光是从代码量上来说至少都能达到1万行以上的代码量
建模模块的代码量也非常大,一个好的流程建模模块代码量也有几万行以上。
还要配备专门测试人员来测试流程中的各种功能和异常情况。
就目前来说国内的流程引擎都不可能100%的满足所有企业和政府中的所有特殊性的流程要求.

以Linkey Workflow3.1为例,Linkey Workflow的建模模块的代码量在1.8万行左右
其工作流引擎完全用Lotus Script实现其代码量在1.1万行左右,系统共采用了120多个核心API函数。
Linkey Workflow 从1.0到3.0共历时13个月的时间,也就是说对于Linkey OA来说,光流程一个模板就花了13个月的时间。

Linkey Workflow工作流模块包括下面的这些功能
1) 流程建模
2) 流程引擎
3) 流程监控
4) 流程实例库
5) 流程权限角色控制库

一个好的工作流引擎应该最少具有以下功能
1)稳定的信息传递架构,支持大流量文档传递
2)图形化流程定制
3)图形化流程动态跟踪
4)支持混合流,并行流
5)支持任意流程之间的嵌套,支持子流程
6)支持远程分发(省与地市之间的公文分发)
7)基于关系的路由
8)基于角色的路由
更多工作流信息可以参见WMFC国际工作流联盟标准文档

在很多大型的OA项目中基本上项目开发人员的时间都集中在流程开发这一块,完成了流程这一块则基本完成了整个项目的2/3工作量,这也是很多OA项目成败的关键,特别是对于政府单位的OA来说,OA是否能实施成功就在于流程这一块是否能满足用户的需求,如果一个OA系统连流程都无法流转的情况下,那么OA变成了一个邮件服务器和文档存储的服务器了.

2)表单自定义模块
 表单自定义模块目前来说是办公自动化中的技术难题,不管是基于关系型数据库还是Lotus Domino的OA系统都是一个难题.现有的表单自定义功能中要不就不能灵活定制要不就不能与流程进行很好的整合,要不就不能对自定义的表单进行权限控制.
 总之表单自定义模块不只是时间上的问题,更大的是技术上的难题,能在表单自定义上突破技术难点的话,那么离完成这个模块的时间就就不长了.

 以Linkey OA表单自定义系统来说:

 从最初的构思开始不断尝试各种方式来对表单进行自定义,从最初的C++到Java等技术都尝试过,通过不断的试验,试验,失败,失败..最终找到了最完美的解决方案,基本上完全的解决了流程中的表单自定义需求.
 从构思到技术突破上花了半年的时间,在技术上突破成功后只花了不到2个月的时间就完成了系统的编写工作.


3)Word控件模块

 在现行办公自动化中还基本上是以Word作为正文的编辑和排版工具,所以一个强大的Word控件就关系统到用户的工作效率.Word控件是否稳定,启动速度是否快速,都直接影响用户的工作效率.
 Word控件是否产生临时文件,能否进行手写批注,电子盖章等都是衡量一个Word控件的标准.
 在IE启动和控制一个Word并不是难题,在Word控件开发中最难的模块应该是在文档编辑完成后在不产生临时文件的同时模拟HTTP提交给WEB服务器.国内还有很多开发商采用FTP上传的方法来进行,使用FTP方法在安全性方面存在很大的问题,而且服务器还要开启FTP服务.

4)信息发布和内容管理系统模块
一个好的信息发布模块应该能让用户进行完全的自定义,用户在日常工作中产生的文档都能用信息发布模块进行自定义分类,以及权限的控件.

 内容管理模块是用来衡量OA系统中是否能直接构建企事业单位的内外网门户网站的标准,国内大部分的OA都集成了一个很简单的内容管理系统,只能构建功能很小的企业网站,一个真正功能强大的CMS内容管理系统单从价格上来说就与一个OA的价格相当,甚至超过整个OA的价格.

 以Linkey OA中集成的Linkey CMS为例:
 Linkey CMS应该是属于一个中等级别的内容管理系统与国内专业的内容管理系统来说还有一定的差距,但是Liney CMS已经能够完全满足一个企事业单位对内外网门户网站的构建了.但是对于一个以在线交易为主的网站来说却无能为力.

5)对于关系型数据库来说权限控制模块也是一个难点
 用关系型数据库构建的OA如J2EE和.Net的OA为例,他们首先要面对的是整个系统的权限,而对于Lotus的系统来说,因为很大一部分的权限管理已经由Domnio服务器实现了,所以基于Lotus的OA在权限管理方面往往开发时间是关系型数据库的1/10.用关系型数据库开发的OA很难控制到字段级别的安全性,但是基于Lotus开发的OA则很容易.

6)OA中其它模块的开发时间
OA中还有很多的模块,如:
邮件模块
短信模块
日程安排
车辆管理
资产管理
会议管理
领导日程
物品管理
工作报告
人员管理
权限管理
文件管理
图书管理
考勤管理
新闻通知
信访管理
等等...
这些模块基本上都没有什么技术含量对于一个熟练的开发人员来说,并不在技术实现上有困难,只是一个时间长短的问题.
根据以上模块的不同需求这些模块的一般开发时间都在2-15天左右的时间可以完成(符合用户需求).

7)如何从技术角度来来判断一个OA办公自动化系统的稳定性?

  首先从外观上查看整个OA系统的所有模块,看风格是否统一例如:文档的分页,链接色彩,文字大小是否统一,如果统一的话说明每个模块都花了不小心思,如果界面粗造风格不统一则说明这个系统至少是比较赶的情况下开发完成的,这样系统难免会有不少的bug.

  对于有技术基础的用户可以用查看源代码的方式查看对方的OA系统中的页面或表单,看他们的HTML代码是否规范,排列是否整齐,引用文件是否统一,从这些方面可以了解到对方OA系统的开发人员的技术实力是否强大,如果代码比较乱,一个简单的功能却写了很长的代码,则说明他们的系统开发人员的技术比较薄弱,如果代码整齐功能强大则说明对方的技术力量很不错.
  一个OA这么大的系统要如果没有很好的规划的话则这个系统很难做到灵活性,例如:界面风格的自定义,数据库目录文件任意的切换,跨平台的兼容性,用户与Names.nsf库无关性等,

 如:整个OA系统的界面要做到更换就不是一件很简单的事情,如果系统一开始规划不好,开发人员的技术高低不一则很难实现风格可以自由切换,国内能够自由切换的OA系统少之又少,只有几家公司的OA具有这个功能,这说明这些OA系统在统一规划上花了不少心思.Linkey OA一开始就很好的规划了系统中的CSS,JS 代理,表单,所以最后支持界面的自由切换就水到渠成了,而如果一个OA一开始没有好的规划后来又想支持这个功能则工作量就非常的大,每个数据库的表单,页面都要修改,改的过程容易出错.而且整个系统又要重新全部测试一次,难免不出问题.

一个稳定的OA应该是:界面风格统一、代码整齐、模块之间的独立性尽量做到最大化方便扩展与维护、功能强大、经得起大用户量的测试。