|
 
Objective
The main purpose of the project is to allow the user of this application to navigate through the streets of the virtual city with the options to speed up and slow down the movement as well as to change directions at junctions of the videos. To provide with additional navigation facilities such as an overhead map, guided tours and a helicopter view.
To provide the elements the user can further interact with, such as collecting some information in a nearby shopping mall while passing or even enter a virtual showroom to view items on display.
Solution
A two tier Client-Server Architecture is developed. The Server side application will be holding the database consisting of all videos required for the application. Its basic functionality is to render services for the requests made by the client.
The Client side application will be holding the media player design and its basic functionality will be sending requests to the server for running a specific video, based on the position, client type and client environment. Also the client side will be provided with the ability to download the multiple videos concurrently. The position of the user has to be tracked along with the other interactive states and present him with an interface to affect these states.
Benefits and Features
- It is a virtual tour of a city, so any user can access it from anywhere.
- The user can get an actual visual tour in forms of video of the places, which is more realistic than anything else
- The user can navigate through the videos of the streets of the city in a way he wants.
- It can be used for promoting the tourism for some of the countries.
- Also it can be used for promoting some specific business houses like restaurants, shops, shopping malls, hotels, motels etc.
Tools and Technologies
Microsoft SilverLight, Microsoft Expression Blend, .Net Framework 3.5, VS 2008(Orcas), C#.Net, ASP.Net
The Client
The client is a big fabric provider. Since the scale of the client's company is growing day by day and its relationship with external sub-companies becomes closer, the existing systems couldn't satisfy its business needs any more.
What the client wanted
The client desired a much more advanced Supply Chain Management system which could transfer information, data, message, raw material etc from one phase like supply, manufacture or distribution to another in different directions. For every department involved, this system sent out coordination instructions to obtain feedback and master corresponding information in time, accordingly, achieving the management with efficiency, speediness, high-quality and low-cost.
We must integrate several separate systems to provide real-time track on raw material transfer and make the flow of operation more fluent. The departments involved technical department, sales department, distribution department, warehouse department, Compounder, etc.
The system must guarantee the fluency and smoothness for all the activities among these departments and keep better track on all the transfer of products, materials and so on.
Challenges
- There were several separate existing databases needing integration, the biggest difficulty was the structure of the databases couldnt be changed and there was little connection among these original databases due to the relative independence of each department.
- The system should meet the needs of database migration because the client would use Oracle as the database instead of SQL Server in the future.
- The project schedule was tight.
- Clients requirements were not fixed and need to be optimized during the development process.
- The business procedure was complex because many external and internal departments were involved.
- Our team would provide remote support after the Alpha release.
Approach
Our team was involved in this project from the analysis phase, and went through design, development, implementation and remote site support. We designed the system based on the Functional Specification provided by client and delivered the design with System Design Specification Document including architecture diagram, class diagram, sequence diagram, data flow diagram, and solution architecture as well as software component design. We developed the system based on the database design provided by client.
In order to make the hierarchy legible and easy for maintenance, we adopted 3 layers B/S structure according to J2EE standard and used open source framework Struts for a standard mechanism of transferring data between the presentation tier and the business logic tier.
As an important part of Apache Jakarta, Struts is popularly used in the Java Web Application development. In this system we used Struts to realize the following functions:
- Routing: distribution of every page and the related logic processes.
- Validation: customer end and data end Validation. Some business logics, such as types of data, range of value are realized in Struts. We took full advantage of Validation module in the Struts framework.
- Presentation: by using the Taglib of Struts, the confliction between UI design and coding was avoided and the web maintenance became more easily.
One issue of the development is to integrate the existing databases into one system. According to our development experience, we recommended the client to adopt Hibernate to solve the problem. Hibernate was a powerful and effective Object/Relational mapping solution, which we used to construct the data layer. We used Hibernate framework to realize the data-groups compounding of separated databases. This transparent data management added high flexibility and expansibility to the logic layer.
Other third party modules we have used:
- DBCP: provided the support of data connection pooling.
- Log4j: log module.
- iText: pdf format support.
- Jakarta serial open source module, for example: Jakarta commons and so on.
- Displaytag: table tag library.
Benefits
- Access to better control of the system.
- Reduced maintenance and operational costs.
- Improved communication among different departments expediting the real-time transaction.
- A flexible and scalable system.
- Timely and accurate inventory reporting.
- Convenient database migration.
The Client
The client is a Canadian consulting and product development group. To improve the low office efficiency caused by fast growing business, it is in dire need of a system that provides the maintenance for the enterprise object XML files with a Mozilla XUL UI.
What the client wanted
Currently, at the end-users'side, product information are typically created and updated by mailing Excel spreadsheets or Word documents around. They want to keep the familiarity of being able to email or save a local copy of a product description while working on it, while at the same time improving the accuracy and efficiency of the process. The problem with the current method is that the information is converted to SQL based on a Word document or Excel spreadsheet when it is time to update the Database with the results. This makes error prone and time consuming because everything must be retyped, and requires IT staff.
The new system will make it possible for everyone to submit suggested updates or new product information by filling in a simple XML document. The objective is not for users to directly edit the XML but helps constrain their choices and ensure the document is correct.
This project is to open, create, edit and save the XML files with a simple Mozilla XUL UI. The main objective is to create a client user interface that allows XML descriptions of some enterprise objects to be read and modified. This should allow updates to existing objects as well as the creation of new objects. The purpose of separating the client and server is to allow product and mapping descriptions to be treated as documents which can be e-mailed, compared, put into CVS, and shared in the file system for future reference. This decouples the description of the information from the enterprise system and database so that changes can be scheduled in a rational fashion.
Challenges
- The adoption of latest technology of XUL.
- JavaScript code should be structured and object-oriented.
- The set of object properties are not final, so the code needs to be flexible and maintainable.
Approach
First we thoroughly studied XPCOM, the Cross Platform Component Object Model. It is a framework for developing cross-platform and modular software. The application's running platform, Mozilla Firefox, uses the XPCOM technology.
The client needed the code is as structured and object-oriented as possible, we wrote the enterprise entity "interface" into a separated js file, included it into XUL UI codes as JavaScript library. Its implementation took place in each of the entity classes?' scripts.
The names of each entity properties are not stable, nor the order of the properties. We introduced the XPath technology to do this string matching for inconstant order of properties (elements). And for the property (element) names, which now become bunch of XPath expressions literals. We extracted them out as constants and stored them as parts of the framework, in order to keep the code as structured as possible.
Benefits
- OOD method makes it easy for further implementation.
- Great flexibility and maintainability can be accessed for non-IT staff users.
- Easy to deploy, all it needs is a browser which supports the XUL and XPCOM such as FireFox or Mozilla..
- Cross-platform application is available.
The Client
The client is a software consulting and technical support company in Netherlands with the mission of improving customers' software development capability and enhancing customers' competitive advantages.
What the client wanted
The client desired a robust and complete computerized administration tool in pursuit of high efficiency and low cost. This system should be a special administration tool which was used to help financial personnel achieve the supplier management and invoice management. The detailed functions covered the management of raw-material suppliers, user management, invoice track, the management of tax category, report creation and data export etc.
Approach
We developed the system from scratch and participated in the entire life cycle of the system. The system was based on Struts framework and J2EE with Linux as the OS, Tomcat as the application server and MySQL as the database. The n-tier model was adopted in the development, including Presentation Layer, Business Layer, Object Access Layer, Data Access Layer and Data Layer. Other technologies like Log4j, JDBC and iText were also adopted.
Some of the highlights of the system were mentioned below:
- The support of general users and administrators.
- The adoption of Cookie maximally improved the access speed.
- The invoice track included invoices' creation, update and deletion. All the concerned information about invoice was saved into a specified history file for checking.
- All the data could be exported into the files with the format of PDF, Word or RTF to the effect that other systems could utilize these data.
- Report forms and print function were available.
- The system could catch the system exception, JVM exception and application exception to guarantee the system's reliability and stability.
Benefits
- Intuitive and easy-to-use interfaces were available.
- Fast and efficient invoice processing.
- A highly easy-to-maintenance and scalable system.
The Client
The client is a division of fortune 500 company in China. It is a large mineral enterprise engaged in coal mining and processing, coal chemical, smelt, building materials, electric power, mechanical electrical repairing & making, light industry and chemical technology, architecture and service sector.
What the client wanted
The challenge was to develop a SCM (Supply Chain Management) system that met the client's requirement of materials supply management and integration of different departments. This project should cover the intranet construction of fifteen mines and the SCM development of the whole mineral Bureau.
Approach
Our team helped the client realize its goal by implementing the following main aspects:
- The SCM system adopted MVC (Model-View-Controller) to design modules and adopts Struts Framework in the web layer. By offering sufficient expansion interfaces, the engineers could adjust Struts to achieve their special demands.
- Because of the complexity of the system business logic, we took full advantage of the new characteristics of struts 1.1 which was divided into several modules. Each module had its configuration file, JSP webpage and action, etc. In this way, the resource was easy to allocate and locate.
- Data access used the objects-relation mapping frame of Hibernate, and the objects model was transparently imported into database by Hibernate. Such technology made the business logic flexible and simple.
Based on advanced J2EE and B/S structure, the SCM system, which was delivered on time and within budget, facilitated the business workflow of materials supply management.
Benefits
After the implementation of the system, the client has significantly improved the work efficiency in the whole company. This has resulted in the following:
-
Helping them execute the intranet construction activities of fifteen mines and the development of the whole mineral Bureau SCM.
- Providing valuable technical information to the implementation team.
- Building reusable components to speed up the implementation efficiency.
- Building knowledge database and sharing knowledge with the client's team
- Improving the inventory management procedures for obsolete and replaced items.
Our team developed the system for the Taxation Bureau to encourage people to ask for receipts at the point of purchase in the expectation to increase taxation.
The system has the following functionalities:
- Invoice authenticity Inquiry
It checks the invoice authenticity through the invoice number and the invoice passwords.
- Taxpayer prize settlement
The system automatically calculates statistics of the prize for the prizewinning taxpayer.
- Consumer prize cashing management
The prizewinning number is chosen by computer randomly. It can only be validated after the invoice password and the prizewinning invoice number are checked.
- The invoice collection management
Such condemnatory measures to stop selling and confiscate the invoice can be accomplished on line.
- Fake invoice report
The system deals with the report of fake invoice, and keep the information of the reporter confidential.
- Statistics data query
The system calculates the statistics data automatically to ensure the issuance of invoice.
- User privilege management
The system provides a convenient web-based interface for users and secures the users' privilege in a better way.
The client
The client is Australia's leading IT service provider that specializes in helping its global customers plan, build and support their IT infrastructures. Its business operations cover over 30 countries located on 6 continents and mainly aim at Australian corporation and government organizations both locally and internationally.
What the client wanted
As a result of various intentional or natural factors, the network or infrastructures always suffered some incidents. If not handled in time, these incidents would possibly result in disasters; hence duly obtaining the incidents information in order to deal with the incidents quickly and effectively became the urgent affairs. The client required our team to design a universal system which was used to report incidents and assign repair tasks to related engineers so to improve the efficiency of handling incidents.
The Security Incident Response System was developed to have different authorization roles such as manager, coordinator, internal engineer, external engineer and employee. After authenticated, any user could report a security incident to managers of the IR department by describing the incidents type, status, cause, nature, location, occurred time, detected time, and the person who detected it. After a manager viewed the report, he then classified the incident and assigned it to a coordinator. Once the coordinator received this incident, he would immediately assign the repair task to the most suitable internal/external engineers who would analyze and handle the incident; meanwhile, reports would be generated and mailed to appropriate users after each of the submitting. Furthermore, the functionalities of searching incidents and checking each incident's status would also be available.
Approach
Our engineers were involved in the complete life cycle of the development. The proven delivery model was successfully utilized in the development. The solution was built on Microsoft .NET 2003 and Windows 2003, and applied Application Building Blocks. The Windows Authorization Manager was used to realize the role-based security. The database was SQL Server 2000.
After deeply understanding the requirements, we began the architecture design and database design. This was a multi-layered system which included Presentation Layer, Business Layer, Data Access Layer and Data Layer in order to maximally separating concerns among components and allowing different developers to work on different parts of the solution with minimal dependencies on one another. Many great patterns had been adopted in each of the layer.
Since user interface logic tended to change more frequently than business logic, especially in Web-based applications, modularizing the user interface functionality of a Web application was preferable way so that the user interface could be modified easily. For this reason, we adopted MVC (Model-View-Controller) pattern to separate the modeling of the domain, the presentation, and the actions in the design of Presentation Layer.
In the Data Access layer, a proven O-R Mapping framework, DAP, developed by our engineers was utilized. The DAP Framework was built with C# and designed to be an extensible and reusable package that could be freely deployed in any project developed with the programming languages that conformed to CLS (Common Language Specification). With the help of the DAP Framework, records in database table could be easily mapped to objects. The framework also provided functionalities of object caching, object states management, distributed transaction etc.
In the process of test, we implemented comprehensive test involving Function Test, Unit Test, Security Test, Integration Test, and Load Test to guarantee the quality of the system.
Benefits
-
The time to marketing was slashed
- Improved the working efficiency
- Reduced the chance of accident
- A stable and scalable system was available
The client
The client is full- service contact center based in US, providing answering service or call center solutions.
What the client wanted
There existed a telephone exchange system at the client's side, which mainly manages the whole work flow, notifies the coming phone call, imports bills etc. However, w ith business development, the existing system could not satisfy the business needs. So the continuous maintenance was needed and some new functions would be developed to meet the needs.
Approach
We adopted the cooperation pattern of offshore development center (ODC) with the approval of the client. We went through the following steps to finish this project.
Dedicated maintenance/support team
Through filtrating the resumes we provides, the dedicated team including project manager, developers and testers that client was satisfied with was identified. the project manager was responsible for communicating all issues about the project, assigning task priorities, supervising the work and guaranteeing the quality to ensure the success of the project.
Infrastructures setup and Knowledge transition
- For the convenience of communication, a Cisco router and 5 Cisco IP phones were installed to promptly exchange information with the client.
- A reliable VPN (Virtual Private Network) was adopted to improve the security of data information.
- The 10M broadband kept us a constant connection with the client to maintain the high efficiency of huge data transfer.
- A secure and isolate location with exclusive hardware etc was separated for the client's Intellectual property (IP) protection.
In parallel with the infrastructures setup, knowledge transition also commenced. Our team acquired related knowledge and details about the system and tasks via training and efficient communication with the client.
Continuous maintenance
Our team adopted quick turn around of enhancement using the technologies such as C#, VB.NET, XML and SQL Server according to the client's requirements.
Considering the heavy task and work load of the system, our maintenance team adopted an extra load testing to ensure a stable system.
In addition, timely reporting was provided to keep the client updated with the whole development progress.
Benefits
- Significantly improved efficiency of the system after the bug fixing.
- Agile troubleshooting response and quick enhancement enabled the client to rapidly enhance its business competitiveness.
- Systematical testing ensured the system run smoothly under heavy data load.
- The mature model of our ODC (offshore development center) guaranteed cost efficiency for the client.
The client
The client is an IT services and solution provider, helping its customers plan, build and support their IT infrastructures. It is a Microsoft Gold Certified Partner in USA .
What the client wanted
The client was aiming at long term customer relationships for his continuous software development work.
It was required to provide technical consulting and software development on its enterprise in-house management system.
The enterprise in-house system should be entirely web-based and built on Microsoft .NET platform, providing good support for scalability and maintainability. It includes main function models of billing system, history system, job system, website system, and etc.
Approach
In order to make the project development transparent, improve quality and reduce risk, we adopted Agile development method and VSTS (Visual Studio 2005 Team System) during the whole project development process.
Agile adoption method
We split the project into many stories. Every story was a whole feature. Usually it took three or four days to complete a story which ran through the whole development lifecycle from analysis, requirement, design to coding, testing. Then we enter the next story, in parallel with bug fixing of the last one. The whole process is called an iteration.
For five or six iterations, there came an application release. Once all planned features passed the necessary test, the application would be delivered to the client for release. And then, with the new requirements from the client, we enter the phase of the next release.
From iteration to iteration and release to release, the project fell into a predictable and comfortable rhythm. We succeeded in increasing project visibility, reducing project risk via regular feedback, continuous improvement and achieved least cost for our clients.
With VSTS, The task distribution, project progress etc, are a white box for the client. The client can log on the project management platform to check the project progress every day; he will clearly know how the software system is built.
The technology
We utilized ASP, ASP .NET, C#, SQL Server, and web technology for the system development.
- To get clipboard data from client extension in a web page and modify them in the server extension without changing data on the client side, our team used the "TcpListener" and the "TcpClient" classes from the "Socket" namespace efficiently.
- To serialize the object and save the value of an object in a web page, we realized inter-transformation between the "Dataset" object and the Xml language.
- In order to help the customer migrate the system easily, we save the files and the images in the clipboard of the client extension to system database on the server side.
The client
This is a market consulting company which provides market analytical tools for companies from different industries.
Situation
The client was looking to market analytical tools that could integrate Market Research, CRM and Data Analysis. As each of its clients has its own market environment and the impact factors one takes into consideration differ from others. After completed the core product, we were then required to build customized products for several companies.
Approach
With the specification document of the project, we took a deep understanding of the requirements and drew up an implementation plan for the whole project.
At first, we developed a core product with the main function modules of factor analysis and data management. The product was created with the technology of VB.NET. Since the product has to deal with lots of account, we used XML to realize the function of transferring and saving data. Some controls were applied to generate charts and forms from which the trend of market changes can be easily found.
Then we customized individual system for the several companies on basis of their special needs. The market analytical tools can analyze the influences caused by pricing, advertisement, promotion, even new products forecasting, with different parameters changing for the different end users.
During the three years of cooperation, we have successfully completed many products customized for companies in different industries like cosmetic, medicine etc. With the high quality of our service, a long-term partnership has been built with deep trust of each other.
|