2011年4月6日星期三

Activity Scheduling System


Abstract

A US based company engaged Nova to develop a product for overall management purpose.
The client was desirous to use a completely automated and robust IT solution to manage the increasing daily business of properties' rental and reservations.

Requirements

According to the client's requirement, the system should be composed of multiple function modules involving basic configuration management, employee management, user group management, class reservation, dinner reservation, properties' rental and reservation etc.
Each order sub-system should have different availability at different times in accordance with the resources needed.
Moreover, on account of multi-roles required, the system should be able to set various levels of authority for different roles.

Solution

Technology required

  • .NET, C#
  • Smart Client, Windows Form, Web Service
  • ASP.NET
  • InstallShield
  • Janus Control

System Architecture

Nova was engaged in the complete lifecycle of the system involving framework design, database design and UI design, implementation and test.
The development process we adopted was RUP (Rational Unified Process) - an iterative process. Using the iterative development strategy, we proceeded through requirement analysis, design, implementation and test.
In order to mitigate the burden of the system on the client's end, we adopted a 3-layer model (presentation layer, business logic layer and data layer) for development, using .NET as our development environment and SQL Server as the database.


























Presentation layer

The presentation layer was implemented using .NET Windows Form and programs were deployable through HTTP. The programs were divided into multiple components based on functions to ensure that components were manageable. It was also convenient for further enhancement.

Business logic layer

The business logic layer was realized using Web Service and BPEL. Web Service implemented actual operations as control class. During the process, Data Access component would be called to do the job when there was a request to database. At last, the control class built the entity class and returned to the caller. Entity class was mainly used for carrying data, and did not perform any other operations. All work were done by control class.

Data layer

As the system was required to be run on multiple database platforms, all database operations of the system were accomplished in one component to reduce the cost of database migration. When an access request arrived, the component would receive a SQL command from the XML configuration file, and then access SQL Server by using SqlConnection of ADO.NET, or access Oracle by using OracleConnection.

Challenges of the development process

During the whole process we encountered some challenges.
  • The system does not allow a number of orders to enjoy the same resources at the same time. And the system should have the concurrency checking for frequent changes of data.
    We designed a special data lock table to deal with lock and unlock to ensure reasonable allocation of resources.
  • When a terminal data changes, every other terminal should be able to get the automatically synchronized data. At the same time, the system must also support a variety of editing features of orders, support circulation and rollback for data status.
    We informed the data changes caused by client to each terminal through Web Service, thereby to achieve the terminal data synchronization.
    We defined a table for the order flow state to make it easier to change the status of orders and rollback. For the data needed to be changed frequently, we added two fields DateTimeStamp and DataTime to achieve concurrency control. For transaction processing, we adopted transaction mechanism of ADO.Net technology to define a criterion for encoding to ensure that the transaction of the system can be implemented or rollback properly.

Benefits to the Client

  • In virtue of iterative development we adopted, the high risks were mitigated at the early stage of development lifecycle.
  • The client's quick feedback and our adaptation leaded to a refined system that more closely met the real needs of the users.
  • The system's clear and compact hierarchy can reduce maintenance cost.
  • A highly flexible, scalable, reliable solution is available.
Nova software

没有评论:

发表评论