概述
虽然名字起的是 Workbench,其实是一个办公自动化平台了,说白了就是一个 OA 平台,随后的时间里,我会慢慢的把我对这个平台的构想写在这里。
一个 OA 平台,其目的是为了满足企业内部日常办公需要,用信息化的手段代替传统手工操作,从而提高工作效率。
从功能上来分,OA 可以包括:个人信息管理,企业工作流程管理,知识管理,计划管理,资源管理等功能。
使用一套 OA 系统的群体通常是一个企业内部的员工,是一个相对固定且有限的群体,通常是在同一个局域网内,有时候因为有些人回家办公,可能会从互联网访问 OA 系统。
技术架构
所以从技术选型上,我们目前选择 Eclipse RCP 作为表现层技术,一方面它继承了 Eclipse 的优点,相对 Web 应用,它有着更加丰富的用户体验和性能,因为有着 Eclipse 的 Update 机制和 Plugin 体系,使得 Client 升级和扩展变得更加的容易。
对于一些 Admin 的功能,如果放到 Client 的话,可能涉及到一些安全性和管理方面的问题,所以当前还是把 Admin 的功能用 Web 的形式提供出来,采用 Myfaces 的 JSF 实现作为 Web 表示层方案,使用 Acegi 控制 Web 访问权限。
Server 端将采用 Spring 2.0 + Hibernate 3.1,从 Web 端可以直接调用 Spring 中的 Service,RCP Client 通过 XFire 这个 Web Services 的解决方案,来间接的调用 Spring 的 Services,这些 Services 是可以同时被 Web Client 和 RCP Client 使用的。
对于业务流程管理,我们采用了 JBoss 的解决方案,是 jBPM 作为工作流引擎, JBoss Rules 作为规则引擎,最终两者结合来最大灵活度的管理企业内部的工作流程和业务流程。
企业内部应用的另外一个重要方面就是内容管理,这个内容管理主要管理企业内部的文档,我们采用 JCR 作为我们的内容管理方案,采用 Apache 的 JCR 的实现 JackRabbit 作为我们的内容管理基础平台,另外结合工作流和规则引擎的能力,把这些文档流起来,真正有效的在企业内部传递,在底层,我们通过 Lucene 对所有进入系统的文档进行索引,这样的话,更大的提高了这些文档的价值,在企业的应用中,非常需要这样能够快速定位文件的能力。
模块划分
根据系统的功能和技术方面,我们把整个系统分为三大模块,即:系统安全及权限控制模块,业务流程管理模块,内容管理模块。
安全模块即扩展当前的 AgileJava Security,使其能够进一步满足整个 Workbench 功能的需要。
业务流程管理模块即综合 Workflow, Rule Engine 和 Form 三个主要部分而形成一套完整的 BPM 应用。该模块暂命名为 AgileJava BPM。
内容管理模块综合了 JCR 和 Search Engine 两方面的功能,用以有效的管理企业内部文档资料。该模块暂无命名,征集中。