2011年4月6日星期三

Media Server


Abstract

This project is for an Australian client who has a long term relationship with Nova. They have a running website, which allows users to upload media files to their personal profile for other users to view and comment. Both audio and video files can be uploaded, and the file formats include almost all mainstream formats of AV files. However, there is an Achilles' heel that the media module is coupling with other functions of the existing website, and lacks uniform management & maintenance, while the expense of the client's local network storage and transmission is very high, so the cost of this module is shooting up along with increase of AV files. Thus, they came to Nova to find a way out.

Solutions

Technology required

  • Visual Studio 2008
  • .NET Framework 3.5
  • ASP.NET MVC
  • jQuery
  • IoC
  • Flash Video MX SDK V2
  • SQL Server 2005

Challenges of the development

1. Media conversion

All kinds of media files uploaded should be converted to uniform flv format so that it can play on Internet conveniently. It took about 2 weeks for us to investigate various Media Convert Components from the technical aspect, and we provided our client with a research report then. Based on our report, they decided to use Flash Video MX SDK V2.

2. Conversion efficiency

From a pretest of conversion efficiency, we have found out that it's impossible to process parallel conversion on only one computer. Thus, we came up with 2 solutions from there: firstly, we can do parallel processing with multi-computers; secondly, we can queue the files with one computer and convert them one by one. Our client decided to go with the latter solution considering the cost, i.e., we do not convert the files immediately after they are uploaded, but add them into a conversion queue instead. Another process polling the queue (in the form of windows service) and take out one media file at one time from there for processing.

3. Bulk file upload

FTP, Flash and Silverlight all support bulk file upload and multi-file upload, but only FTP and Silverlight can resume broken downloads. So we finally choose Silverlight as the main uploading method considering the complexity of operation with FTP, and use Web Form as an assistant method so that when the users do not want to install Silverlight, they can use the website as well.

4. Integration with the existing website

It is required that Media server can run as an independent website as well as be integrated into the existing website seamlessly. Seamlessly integration here means: the existing website can call any service of Media Server without re-login by users, plus some of the content of Media Server can display on the existing website as part of its pages.

Methodology

We tried Scrum, one of the Agile development methodology, during this project. We tried our best to deliver the most valuable product as soon as possible through interacting with the client frequently, cooperating with them actively and good self management of our development team.
We set one month as a Sprint, and try to deliver valuable products for each Sprint so that to get some feedback from the client as early as possible. While we didn't adopt entire Scrum practice since Nova and our client are in different countries, and are restricted geographically, we made our choice on some of the Scrum rules, and left those currently unfeasible ones behind, for example, we do plan meeting, product demonstration and review internally, and send our discussion results for the client's review, then adjust accordingly upon receiving their feedback.




















































































































































































Light Weight And Rapid Website Development With N2CMS Engine


Highlight of this case study

  • 5 or 7 man-days for one site in general, including PSD file converting to HTML and CMS development.
  • Most cost-effective website solution for small business

The client

The client is an Australia Network Service Company providing CMS Project Hosting service with N2CMS.

What the client wanted

The client had been looking for a N2CMS outsourcing service provider to implement different kinds of N2CMS sites that had a complicated and delicate skin design. 

Among several vendors, our pre-sales and estimation were outstanding and they finally chose us as the service provider.

Situation

The client has a development team of their own for skin design and N2CMS development. As the client has too many projects to finish them all in time, we were asked to take the main development work so that their development team would be absorbed in the business logic among the web sites.
During the development, some of the skin designs were very difficult to implement, we frequently communicate with the client and gave better solutions for these difficult points, most of the suggestions were accepted. Besides, in order to make a better foregrounding effect, we did a lot of investigations on jQuery plugins, for some specific requirements, we even developed the plugins by ourselves. Among the 17 web sites that we finished, you can get a very cool visual effect and easy operation experience.

Project Screenshots

 

 

Solution

Technology Adopted

  • C#
  • N2CMS 2.0
  • jQuery 1.3

Development methodology

To best collaborate with the client, we were asked to work with the skin development and N2CMS development.
At first, the client provided us with a PSD design file and a N2 development template. We created all the HTML pages per design and then sent them to the client for check before we start the CMS development. After the confirmation from the client, we started the CMS development immediately.
Sometimes, the skin implementation was difficult, we met several problems, e.g. the layout modification for gallery view images, the integration of gallery view and slider menu, etc. We did a lot of studies and investigations on jQuery Plugins, shared our experience of jQuery Plugins with each other on our internal meeting. Fortunately, we got over all the difficulties we met.
After a period, our workload increased, more projects were assigned to us, we became very busy with skin implement. For that, we studied out a workflow to speed up our productivity, we kept on accumulating experience of jQuery Plugins and sharing with each other, studying the best practice from the sample sites, more frequently communicate with the client. We also proposed our suggestions to facilitate the work and the client were happy to accept them whenever they believed they were useful and helpful.
Lately, we managed to finish all the 17 sites from the client, they were very satisfy with our service.

Customized Application For A Consulting Company


Abstract

The client is a Consulting company based in US, providing its customers with not only consulting services, but also software solutions to promote the productivity of companies and organizations.
The client intended to develop a management system that could dispatch assignments with different customizable content packs like exams, surveys and learning content to different groups of people. And the results could be reviewed, graded, and analyzed in the system. Finally, the system would generate reports on the results.

Requirements

  • The system has a user-role based administration system. Different roles can access a configurable set of modules.
  • People are organized by a hierarchical structure of organizations, area and positions.
  • The content packs can be made by the author, or bought from online providers, or imported from different types of document. The content should be able to show common media types such as image, sound and video of common format.
  • The system provides a way of notification/communication of assignments through message/email. People can either read messages in the system or through emails outside the system.
  • A template system is provided to facilitate the user in making a content pack. And the user can edit the content pack in a WYSIWYG (What You See Is What You Get) way.
  • People can take the assignments through either a windows application or a website.

Solution

Technology required

  • .NET Framework 3.5
  • IIS6/IIS7
  • WCF
  • Dev Express Controls
  • Microsoft SQL Server 2005
  • Visual Studio 2008
  • ASP.NET
  • ASP.NET AJAX 2.0
  • Updater Application Block

System Architecture

Nova has been involved in this project since the analysis phase, and went through design, development, implementation and testing.
According to the requirements of the clients, the system should be entailed with various features like: good user experience, response speed, powerful and complex management capabilities, rich and varied analysis capabilities, real-time monitoring and tracking capabilities etc. Furthermore, users should be able to browse the contents published by the system through a browser or e-mail. Thus, we broke down this system into three parts: the Web part, Windows Form based application and Web Services. Meanwhile, MS SQL Server 2005 was adopted as the database.



























Web part

Actually Web part could be considered as a Rich Internet Application, thus DHTML & AJAX was used to implement the major functionalities. To attain better extensibility and maintainability, it was possible that we would re-factor this part using Sliverlight. The Dev Express Web Controls we used not only provided integrated and pleasing UI, but also provided powerful functions and improved our development. Great user experience has been injected due to the adoption of ASP.NET AJAX.

Windows Form based application

For the Windows Form based application, we adopted Smart Client Software Factory to create the framework of the whole system, for the sake of the scalability and a more reasonable architecture of the system. There was no doubt that the deploying of widows application is very difficult. We hereby adopted the ClickOnce technology to deploy the system which made deploying a Windows Forms based application as easy as that of a web application.

Web Services

The Web Services part was built on WSE3.0, and we had successfully migrated this part to WCF which strengthened security and dependability. In addition we compressed all the data to enhance the transport capability between the server and Client.

Challenges of the development process

  • The software has already been launched in the market; as a result, high quality, capability, stability and maintainability are demanded for each release.
    We were very cautious to handle each of the system changes, especially for those with relatively high risks. Firstly, we made a prototype to eliminate uncertainties inside, and then wrote detailed design documents and inspected it fully. Only after the client reviewed and confirmed, we began to implement it. In the process of implementation, we constantly re-factored the system and cross-checked the code.
    We have benefited from the Smart Client Software Factory framework which supplies a high degree of flexibility and scalability. Our developers are familiar with OO development concept, and they have made full use of OO design patterns .Our code are clear, readable, high cohesion and low coupling, which furnishes the system with a guarantee of maintainability.
  • As the system had been developed over 2 years, the functions and logic of the system grew over time. The developers could not tell exactly how each module should work after a period of time.
    We hold “new feature presentations” periodically in the team to show the new changes brought into the system. Normally the testers hosted the meetings. They brought the team together and showed the whole picture of what the system was or would be look like. The developers asked questions or discussed with each other therefore renewed the knowledge for the system.
  • All the requirements were collected by the clients from their end users. Accordingly the team could only get the functional description from the clients. The development team did not clearly get the purpose of a modification in this way, and might lose the chance to improve the design in their perspective.
    We improved this by actively taking part in the creation of the requirements. Everyone was asked to act as real end users in the system to grasp the essence of the requirements. And we held “feature batch” meetings to discuss the possible features that we can add to the system, the possible solutions could be implemented, and then offered suggestions to the clients. The clients were happy to accept those suggestions and later on logged them on their future change request list.

Benefits to the Client

  • The latest version of this software meets all the requirements of the client, including the newly added features.
  • With us thinking together with the clients, the clients worry less about the inconsistency of the implementation with the requirements.
  • Thanks to the mature frame “Smart Client Software Factory” and experienced developer, the system was established with excellent extensibility and maintainability. The client is able to add new functions increasingly in each iteration.
  • Because of our stringent development process, excellent quality control and good progress control, the client's business runs well with the software timely released and deployed.
  • With the good structure, ongoing re-factoring and refinement, the system was endowed with high expansibility, which can well support future business logic extension.
  • With the deep-set trust between the two sides, the client can now focus their forces on marketing, and he doesn't have to worry about the software development and team management.
Nova Software

Rapid Website Development Using N2 CMS


Highlight of this case study

  • 4 man-days for 1 site, superfast speed for site-building.
  • NO technology knowledge is required to maintain the sites.
  • Most cost-effective website solution for small business.

Situation

The client is a start-up company which provides web development services to stores, bars, hotels and many other industries. All of its clients have some common requirements, such as:
  1. Clients hold a high expectation of website's look & feel. They hope the appearance is not only beautiful but also characteristic.
  2. They have a bundle of business information to publish. Therefore, CMS is a preferred solution.
  3. There are various requirements from these clients, including: from text and image presentation to Visitor interaction; from the release of news and products to all kinds of on-line services (e.g. on-line stores and Events management). On accounts of these different requirements, it requires a development technology which can quickly respond to changes to implement site customization (N2 is strong in RAD development).
As an emerging lightweight CMS framework based on ASP.NET, N2 CMS can greatly meet these above needs, our client chose N2 Framework as the web development platform.

Technology adopted

  • .NET Framework 3.5
  • ASP.NET 2.0
  • N2 CMS MVC Template
  • jQuery
  • CSS

Architecture

Our main task is to implement these related sites based on HTML Template design. Following is the system architecture diagram and the MVC (Custom Part) is our core work.















Benefits to Client

  • We accomplished 4-site development for the client in one and a half months.
  • As long as the webmaster can use Word, he can easily manage these site management functions with a training of a few dozens of minutes.
  • These web sites support localization feature, which is convenient for webmaster to publish information to different clients in various languages.
  • Our performance is efficient and highly qualified. The client expressed their satisfaction with our work and hoped to sign a longer- time ODC contract with Nova.

Screen Shots





 
 

 

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

2011年3月28日星期一

Fast Rebuild Shopping Cart For An Healthcare Online Shop

Highlight of this case study

  • Rapid development of e-commerce website serving more than 100,000 customers
  • Smooth and interactive purchase process, providing the customer with terrific purchase experience
  • Multi-level security: security technologies are adopted to guarantee 100%secure purchase

Who is the client?

Based in US, The client is a direct response B2C company that focuses on radio and web advertisements. They primarily sell their own line of vitamins and supplements through their online shop. However, the shopping cart engine of this site has been outdated and they want to enhance it.

Project evolution

The client has a roadmap for a total redesign of their site in the 8 months. In the interim however, they would like to make modifications to the existing site / cart to maximize revenue and enhance the user experience.
The client initially provided a specification document and pictures to explain what they wanted. After several rounds of communication, our business analyst was able to fill in the requirement table as below:

Solution

Technologies

  • ASP.NET 2.0
  • VB.NET
  • MS SQL 2005
  • jQuery

Security solution

Transaction security is the prerequisite of a reliable e-commerce website. Our development team adopted proven technologies to guarantee the security from multi levels.
  1. User information: Our development team combined Master Key, Certificate and SymmetricKey to encrypt the users' credit card number, Electronic check number and user's login password.
  2. Database: Stored Procedures are adopted to query, add, delete and edit data. The website is only granted with the permission to execute the Stored Procedures, so to avoid attacks on the database.
  3. SSL: Godaddy SSL seal is added to the website to provide overall protection.

Screen shot



What did the client get?

  • The website has complex business logic, while the original source code was quite messy. Our development only spent 25 workdays to complete the whole job.
  • High extendibility. Ajax was adopted for validation and submission during the checkout process, so the shopping cart can be easily transplanted to other sites.
  • High maintainability. The original system used ASP.NET server components. Our development team replaced them with client-end control and adopted jQuery to transfer and edit data, so the maintainability was largely increased.