需求
- 根据客户的需求,该系统应由多个功能模块组成,包括基本配置管理、员工管理、用户组管理、课程预定、宴会预定、资产租赁和预定等等。
宴会、课程等服务预定
- 客户要求应用程序也能在web浏览器上执行,以满足越来越多的来自互联网以及移动终端的业务需求。
网上预定的付款处理
- 每个订单子系统应该按照所需的资源,设有不同的可用时间。
- 此外,由于需要多种角色,系统应该能够给不同的角色设置多种权限级别。
解决方案
技术要求:
- .NET, C#
- Smart Client, Windows Form, Web Service
- ASP.NET
- InstallShield
- Janus Control
- System Architecture
系统架构:
- 诺怀软件全面参与了此系统的整个开发周期,包括框架设计、数据库设计、用户界面设计、功能实现和测试。
- 开发过程中我们采用了RUP过程,即迭代式的开发过程。使用迭代开发策略,我们通过需求分析、界面设计、功能实现、测试,按阶段地交付该项目。
- 为了减轻系统在客户端的负担,我们采用了三层架构的模式(表示层、业务逻辑层和数据层),.NET作为我们开发环境,SQL Server作为数据库进行开发。
表示层
该项目的表示层利用.NET窗体控件实现,并且程序通过HTTP部署。它被分成多个基于函数的组件,以确保组件是易于管理的,这样也方便系统进一步增强和扩展。
业务逻辑层
业务逻辑层通过使用WebServices和业务流程执行语言(BPEL)实现。Web Services实现实际的操作,譬如对控制类进行操作。这个过程中,当数据库接到一个请求时,数据访问组件就会被要求执行该项工作。最后,控制类建立实体对象,并返回给调用者。实体类主要用于传输数据,但不执行任何其它的操作,所有的工作都由控制类完成。
数据层
由于系统需要在多个数据库平台上运行,所有的数据库操作都应该在一个组件里完成,这样可以减少数据库迁移的成本。当接到一个访问请求时,该组件将从XML配置文件中接到一个SQL命令,然后使用ADO.NET的Sql连接字符串访问SQL服务器,或者用Oracle连接字符串访问Oracle数据库。
开发过程中遇到的挑战
开发过程中我们遇到了如下一些挑战:
- 系统不允许多个命令在同一个时间使用同一个资源。系统应该为频繁变化的数据设置并发性检查功能。我们设计了一个特殊的数据锁表来处理锁定和解锁,确保资源的合理分配
- 一个终端数据发生变化时,每一个其它终端的数据也应该能自动同步。同时,系统必须能支持订单的各种编辑功能,数据状态的循环使用和回滚。
- 我们通过Web服务将用户导致的数据变化告知给每个终端,从而实现终端数据的同步。
- 我们给订单流状态定义了一个表,以便改变订单状态和回滚。由于数据需要被频繁修改,我们添加了DateTimeStamp和DataTime这两个字段,实现并发控制。针对事务处理,我们采用了ADO.Net技术的事务处理机制,为编码定义了一个标准,确保系统的交易能正常进行和恰当回滚。
客户收益:
- 采用迭代开发模式,减少了整个开发周期中在开发早期阶段可能遇到的高风险。
- 客户的及时反馈,我们的快速处理,促使了一个精制的能更好满足用户实际需求的系统。
- 系统简洁而明确的层级结构能够减少维护成本。
- 一个高度灵活的,可扩展的,值得信赖的解决方案相当有用。