In the world of software development, the technological ecosystems are evolving continuously. Besides the continuous evolution, the latest ecosystems provide simpler tools for the development process. The higher a framework abstraction is, the less focus needs to be paid to technological details, which helps developers concentrate on the business logic, rather than framework specific details.
Thanks to the fast development of hardware and technological ecosystems, more and more tasks can be solved with computers. The history of video rental services is a outstanding example.
In the 1980s, video rental stores were lending VHS and Betamax tape recordings of TV shows and movies. Two decades later the magnetic cassettes were replaced by DVDs and after 2010, Blu-ray disks become the next physical media to store our favorite shows and movies.
Since the introduction of high-speed Internet connections and the continuous improvement of hardware performance, video rental stores started to be replaced by online, on-demand video or audio streaming services. Some popular examples of such services are: Netflix, Hulu, Youtube and Spotify.
The purpose of my thesis is to research a technological stack which makes the development of such streaming services possible. To achieve this goal I designed and implemented a media player application, which is capable of playing content stored locally and on remote computers. This application is executable on three of the most popular operating systems: Microsoft Windows, Mac OS X and Linux based operating systems.
As a by-product, I developed a server application, which stores and serves the metadata of the remote media content.
The thesis starts with a short introduction of media services, which is followed by a technological overview. In the next two chapters I present the development phases of the server and media player application, and the artifacts of this process. In the last chapter I evaluate the work and present few possible further development tasks.