• Ei tuloksia

Data dispersion is a common problem in many companies. Valuable files of enterprise may be decentralized in multiple locations and or even in employer workstations. Reasons for data dispersion can be miscellaneous. One of the performance and efficiency problem which need to be solved.

Decentralized storages like different servers and shared network drives still host a lot of data nowadays. It is a good and simple solution for relatively small amount of data that does not need any extra information than the filenames or folder names provide. When the amount of stored files expands or more metadata about the files is needed, the limitations of such a solution will start causing problems. Different kind of solutions for file storing and distribution must be developed to be able to improve the existing processes or to develop novel methods.

Web solutions are used more and more in creating applications. Due to the web servers the web applications have a very good accessibility to all related users by using internet or intranet. In data dispersion point of view a web application is in many cases the most easily accessible location inside a company. Advantages of the web application are that a web application can provide features for data management and distribution. A web application also contains easily manageable and extensible GUI which helps to provide files to users with more specific information and advanced features like searching, authentication and caching.

The subject for this thesis came up from the real working project. In Nokia Corporation the symbol files which contain the debug information of the device software do not have centralized repository from where the files are extensively distributed to different kind of clients. This is not problematic only for the single developer but also for the automatic systems and scripts which require those files to work properly.

In an early solution the symbol files were uploaded to servers shared network drive by build teams. The build teams are responsible for releasing software versions for the devices. Then a processing script wrote a ROM ID value and a path of the files to a TXT file. A decoding tool reads the whole TXT

file while searching a matched ROM ID value to be able to use the correct symbol files for the decoding purposes.

Problems of the early solution were that tens of thousands of files were located on a single folder and files did not pass other information than their filename. Also reliability problems with the uploaded content were usual, because the files were uploaded by different teams around the company with different processes and practices. In addition, most of the developers were not aware of the symbol file storage repository, so users had to seek the needed files from elsewhere. There was a definite need to create a centralized storage for the symbol files which could also collect and distribute its content widely inside the company.

For solving the mentioned problems a system called Symboldatabase was developed. Symboldatabase is a system which consists of the following components:

• Server Application

• Database

• Web UI.

Server Application is responsible for collecting stored files from the multiple locations and providing API’s for distribution. Database stores metadata of the stored files. The stored metadata includes valuable information about the files such as filename, file type and file path. With metadata information the files are introduced and distributed to clients. Symboldatabase is also responsible for providing those files to Crash decoding tool. Symboldatabase provides a dynamic HTTP interface and a web service, which provides files and metadata as requested by a client tool. Symboldatabase also provides a web UI that can be used for content browsing, searching and downloading. With the web UI a user can effectively and easily browse and download files.

Selected solutions for Symboldatabase implementation were selected after feasibility study. PHP was selected for the web UI due to its popularity and because it provides a good API and documentation. The Yii PHP Framework was selected after some features and performance comparison of the PHP mostly used frameworks. The Ext JS JavaScript framework on top of Yii Framework was chosen because it provides better UI components than Yii Framework. For the database solution a relational database was found most useful and MySQL was chosen of it is easy to use and maintain and Yii PHP Framework provides advanced libraries for handling and managing the MySQL database.

This thesis includes six chapters. Chapter 2 introduces data dispersion and what are the stored and distributed symbol files and for what purpose they can be used. The chapter also provides information about the existing symbol servers. Chapter 3 provides information about the architecture and mainly used solutions for the web applications. The chapter is a research section where different parts of the web application are under microscope. Chapter 4 introduces PHP frameworks. It also contains evaluation of the PHP framework versus pure PHP development. It answers to questions: What are the advantages of the PHP frameworks and are there any disadvantages which prefer pure PHP developing.

Chapter 5 presents Symboldatabase. It contains use cases, requirements and design for Symboldatabase. This is thesis implementation section and it focuses also on the database structure and GUI for providing Symboldatabase content to the users. Chapter 6 summarizes and concludes the thesis.