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.
The client also required to run the business in the web browser to embrace the needs from the World Wide Web and increasing number of mobile devices.
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.
Nova was engaged in the complete life cycle 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.
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.
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.
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.
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.
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.