信息化改造项目,在启动前,必要时,需要对技术方案先做方向性的评估。在投资有限、硬件资源有限的条件下,为了满足改造需求,需要进行技术方案选型、技术点使用范围进行分析。主要技术选型度量点如下:
现今,软件信息系统架构和开发技术都很多,而且,在云计算的概念炒作情况下,容易迷失方向。在这里,结合系统现状、开发资源和需求等条件,可选的技术架构有J2EE、SOA、PaaS,可选的开发技术和语音有HTML、JavaScript、Java、Bean、Web Service、Restful、Soap、XML、Json、JSP等等。
本文将结合现状,提出与具体技术无关的架构,在此架构上选择适合的技术,以满足各个方面的需求。
现系统核心是2009年建设的全省集中办公系统,目前架构是Apache HTTP + Cordys平台的SOA架构,硬件资源为4台PC Server组建的集群,以及1台IBM P570小型机。另外还包括,从2005年开始,陆续建设的部室办公和专业系统,如下图所示,现存在5种平台的信息系统。
当前,核心系统用户数为近2万,以流程为主的并发量为1500。
流程审批表单是由表单、流程、数据规则、操作、意见等业务项构成,对这些原子业务单元就行管理,在具体流程业务中,把这些原子业务按规则装配绑定在一起,来形成具体的业务。
例如“操作”业务,归纳主要功能有:保存、送出、选择人员、选择下一步、查看流转记录等;“数据规则”业务就是在不同的流程环境,对业务表单上的操作权限,以及内部业务逻辑。
流程服务是在Opentext Cordys工作流引擎的基础上,按云技术规范封装API服务,并与平台集成,以满足系统中流程业务应用的需求,规范管理工作流开发的接口,提供通用的开发功能支撑。
1、任务处理功能
确认受理、追派、追回、撤销、挂起、激活、自由跳转、传阅、协办、会签、审核、退回、提交、工作移交。
2、流程控制及跨流程控制功能
启动流程、流程中启动流程、主流程结束、子流程结束、流程互调、流程回调、分支、合并。
3、平台技术
⑴、流程服务技术支撑
流程定义、流程调度、流程调用、流程实例对象管理、流程模拟、流程建模、流程监控、流程生命周期管理。
⑵、架构
核心架构、运行环境、设计开发环境、流程控制、业务规则支持。
3、系统
可用性、可扩展性和性能要求、一致性、存储要求。
4、集成
⑴、4A集成
用户和组织集成、角色、SSO集成。
⑵、能力集成
能力集成、管理控制台集成、应用隔离及多租户实现。
信息业务主要包括:静态信息展现、数据信息汇总与分发。
这里所说的信息类似网站上新闻信息、信息系统上的数据填报信息,以及信息互动,类似微博形式。为省公司本部、地市等部门办公提供信息交互、信息共享功能,这样,各个部室功能类似,形式和数据内容有差异,因此,需要通过业务原子化,再通过业务装配来复合出具体信息专栏,为某个部室或全公司提供信息服务。
1、统一开发平台
整合企业现有独立的系统到统一平台上,通过规范接口、规范开发技术,改造现有系统,逐步迁移到新平台上。
2、快速开发组件
以信息专栏为例,通过展现模版、通用信息发布功能等在平台上预置的功能,组合原子功能来实现快速开发、部署业务。
3、通过负载均衡等技术满足高并发、性能稳定需求。
系统要满足注册用户数21000个、并发压力用户数1500个(其中,80%为流程类流程流转业务)、页面响应不超过3秒的能力。
如图所示,在统一开发平台上提供基础技术服务,例如流程服务、表单服务、统一用户服务、统一组织服务,并提供规范开发平台;在开发平台上构建应用软件平台,首先,把应用软件进行有限的原子化,例如信息发布功能、流转记录查看功能等,按一定的业务规则,组合开发具体业务功能。
以市场竞争信息专栏为例,通过组合信息发布、信息交互、信息展现等原子组件,形成市场竞争信息业务功能,在功能底层,例如信息统计,使用统计适配器,抓取竞争信息数据报表。
如图所示,新的信息栏目需求,通过系统配置及原子组件组合、个性开发、部署来实现。
1、用适合的技术开发业务功能(15%);
2、技术成熟,最好有相关的实施案例(25%);
3、有合适的人力资源适合此项技术的应用(25%);
4、满足并发压力、性能的需求(30%);
5、满足用户体验需求(30%)。
按上述原则,填写下表,进行决策分析。
1、采用Restful规范,是针对Soap XML协议的,以此来减少网络数据传输量,降低客户端解析数据压力,也可降低服务器数据端口吞吐量;
2、Apache HTTP Server,提供的静态页面WEB服务,相对于动态页面Java容器,性能较好,但是,静态页面的动态及数据处理需要通过JavaScript(JQuery)编程开发来处理,不如JSP容器处理方便。
另外,关于J2EE需要Session予以支持,这个方面比较耗费资源。
3、SOA技术使用,便于使用无状态技术,这样,可以不使用Session,特别在负载均衡时,不必进行Session复制,可以降低系统资源消耗。
从项目经理的角色,依据用户需求,个人的想法,没有平台的倾向性,具体技术要求原则:
1、为了更好的用户体验,界面开发采用HTML(静态页面)+JavaScript技术;
2、为了降低网络带宽和提高性能,请求和数据采用Restful和JSON;
3、功能开发原子化;
4、事务管理使用无状态机制的Cookie(或其它类似技术),尽量不使用Session;
5、不同业务间的业务数据尽量隔离,避免相互影响,便于维护。
由于文者技术水平有限,不足或意见的请反馈。