Dissertation on Optimizing Adaptation of Algorithms

Date:  2021-03-05 18:09:05
6 pages  (1575 words)
Back to categories
This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.
This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.

Furthermore, this dissertation proves to be of great importance in that it leads to the examination of how maximization of bandwidth among various users can take place without the decrease in the end-user quality of experience (QoE). The same helps in the prevention of scalability issues with the inclusion of unfair sharing of bandwidth, unstable quality, and underutilization of network resource. By proposing the solution of software define networking (SDN), there is the proper resource allocation and proper management of the architecture of HAS systems with the aim of preventing occurrences of stability issues and the improvement of quality of experience of every client. The dissertation helps in the identification of ways of managing and allocating networks resources in a dynamic manner to ensure that quality of experience of each user increases. Finally, the dissertation aims at ensuring that scalability is enhanced through the improvement of quality of experience for every client by at least 30 percent and providing support for more than 80 percent with the same quality of experience as compared to conventional options.

About the Dissertation

This dissertation is about optimizing adaptation of algorithms where the dissertation aims at the identification if ways of improving the quality of experience through the use of algorithms that can improve quality of experience (QoE) of clients in the process of streaming videos. This ensures that algorithms used to stream videos do not affect each other and that they work independently thereby enabling improvement of quality of experience independently.

How to Install and Run the Software

Install Java 1.6 or higher

Note: Mac OSX 10.6 will have Java 1.6 installed by default

To check: Run java -version on the command line

If not correct, download the J2SE SDK from:

http://java.sun.com/javase/downloads/widget/jdk6.jspInstall it (the SDK) to /opt/java

Note: Install the JRE to a different directory (probably the default, especially under windows) or you will have problems

Set environment variable: JAVA_HOME=/opt/java

Mac users: JAVA_HOME=/Library/Java/Home

Windows users default: JAVA_HOME=C:\j2sdk1.6.0_xx (where "xx" is the minor version - for example "j2sdk1.6.0_11")

Add $JAVA_HOME/bin to PATH

Setup Maven 2.0.6 or higher

Maven - http://maven.apache.org/Note: Mac OSX 10.6 will have maven 2.2.0 installed by default

Note: Mac OSX 10.5 will have maven 2.0.6 installed by default

Download Maven 2 (minimum 2.0.6) - http://maven.apache.org/download.htmlExtract to /opt (should create maven-2.X.X folder, where X.X is the sub version)

Set environment variable: MAVEN2_HOME=/opt/maven-2.X.X

Add $MAVEN2_HOME/bin to PATH\

Set the MAVEN_OPTS environment variable

MAVEN_OPTS='-Xms256m -Xmx960m -XX:PermSize=64m -XX:MaxPermSize=150m'

Windows: XP users have to change the location of their local repository since its path contains spaces (since it is in the user home directory by default). To change the location go to <maven_root>\conf\settings.xml and set local repository value: <localRepository><your_path></localRepository>

Setup Subversion 1.5 or higher

Subversion - http://subversion.tigris.org/Note: Mac OSX 10.6 will have svn 1.6.5 installed by default

Note: Mac OSX 10.5 will have svn 1.5 installed by default

To check: Run svn --version on the command line

http://subversion.tigris.org/project_packages.htmlGet the subversion binaries and not the source, if possible

If there are no binaries for your platform, get the source and use the configuration options --with-ssl and --with-libs

Extract to /opt (should create subversion-1.5.5)

Windows users will want to rename the extracted directory

Unix users will probably want to use a package for their flavor

Set environment variable: SUBVERSION_HOME=/opt/subversion-1.5.5


Get Matterhorn source

Matterhorn svn repository: http://source.opencastproject.org/svn/products/matterhornCreate a directory to hold the source and your matterhorn install called matterhorn (referred to as MATTERHORN_HOME)

mkdir /opt/matterhorn

cd /opt/matterhorn

Checkout the matterhorn trunk (unstable) source code into the matterhorn_trunk dir (referred to as MATTERHORN_SRC) in the MATTERHORN_HOME dir

svn checkout http://source.opencastproject.org/svn/products/matterhorn/trunk matterhorn_trunk

Setup Apache Felix OSGi

Apache Felix - http://felix.apache.orgNOTE: These instructions are for Apache Felix. Other OSGi implementations include Equinox and Knopflerfish. Matterhorn is tested on Felix but should work on any modern 4.1 compatible OSGi implementation.

Make sure you are in the MATTERHORN_HOME dir

cd /opt/matterhorn

Download the latest binary release of the "Felix Framework Distribution" http://felix.apache.org/site/downloads.cgi (probably version 2.0.1 or higher)

Extract the archive in the MATTERHORN_HOME dir and rename the directory to felix

tar -xvf felix-framework-2.0.1.tar.gz

mv felix-framework-2.0.1 felix

Create the felix load directory

mkdir felix/load

Copy over the felix configuration files to the felix conf dir

cp -r matterhorn_trunk/docs/felix/conf/* felix/conf/

NOTE: Remember to check for revisions to the Felix configuration files with each update of Matterhorn. If you are unsure whether the file has been updated, it is safest to simply copy them over each time.

Copy run scripts and setup environment

These scripts setup your environment correctly to execute the matterhorn runtime using the felix OSGi container

Make sure you are in the MATTERHORN_HOME dir

cd /opt/matterhorn

Copy the matterhorn run scripts into the current directoy (bat files for win or sh files for unix/OSX)

cp matterhorn-trunk/docs/felix/bin/*.sh .

NOTE: You may need to make the script executable: chmod a+x start_matterhorn.sh

Add the following environment variables

export FELIX_HOME=/opt/matterhorn/felix

export M2_REPO=~/.m2/repository

NOTE: If the "export" command doesn't work for you, use the equivalent command in your shell, or type "bash" to switch to a bash shell.

NOTE: You could also edit the matterhorn start script but the recommended method is to setup the environment variables so the script picks up the changes

Load the environment variables into the shell by closing the shell and opening a new one, or running:

source ~/.bash_profile

Build matterhorn

Make sure you are in the MATTERHORN_SRC dir

cd /opt/matterhorn/matterhorn_trunk

Build the source using maven

mvn clean install -DdeployTo=/opt/matterhorn/felix/load

Windows: Matterhorn does not yet build without test errors on Windows so in order to build Matterhorn -Dmaven.test.skip=true is specified. Instead of -Dmaven.test.skip=true you can also set -Dmaven.test.error.ignore=true and -Dmaven.test.failure.ignore=true to see which tests fail.

NOTE: The Matterhorn project components will be deployed to the load directory of your Apache Felix instance. Felix will automatically reflect any changes made to this directory, even during runtime. Remember to delete everything in the felix/load directory before rebuilding Matterhorn. Maven does not delete previously built bundles when redeploying.

Install the 3rd party tools

Windows: The windows install for the runtime tools is much more complex and is documented hereLinux: Linux users will need ant, xml-commons-apis, zlib-devel or zlibig-dev, patch, byacc and pkgconfig. Linux users having difficulty building libmediainfo can download a binary version.

Go to the runtime tools dir (in the MATTERHORN_SRC dir)

cd opencast-runtime-tools

Build the runtime tools

sudo mvn install -Dthirdparty

NOTE: Admin access required: When the sudo command is used, you will need to enter your computer's operating system password.

NOTE: Firewall rules: For licensing and patents reasons, the installer gets FFmpeg sources from their subversion repository, which means that you need to have outgoing access to port 3690

Configure Matterhorn

Matterhorn has a number of configuration options which you can generally leave at defaults for development purposes but it is important to be aware of them

Overview of Configuration Files

Configure Matterhorn Port Number and Base URL

Configure Matterhorn Feed Catalog

Capture Service Configuration

Run Matterhorn

Execute the run matterhorn script from your MATTERHORN_HOME dir


Wait for the logs to stop scrolling past at high speed (should take 30 secs to 1 min depending on your machine)

Open http://localhost:8080 in your favorite web browser to test things are working

NOTE: You can access the Felix system console at http://localhost:8080/system/console (user:admin, pw: admin)

Update Matterhorn source

After you have installed Matterhorn source code, you may want to periodically update to the latest revision if you are working with the trunk

run the svn update command from <matterhorn_trunk>

after the update is complete, if Matterhorn is running, to stop Felix type shutdown at the command prompt (you may need to press 'Enter' to get the '$' which is the command prompt) where your Felix is running. You can also press 'CTRL-C'.

delete all files from felix load with the command: rm -rf /opt/matterhorn/felix/load/*

execute the maven build command (see the Build matterhorn section above)

You may want to ensure your felix configuration is up to date: cp -r /opt/matterhorn/matterhorn_trunk/docs/felix/conf/* /opt/matterhorn/felix/conf/

NOTE: You will lose any local changes you made to those files

run the ./start_matterhorn.sh script to restart Felix

Goal of the Dissertation

The main goal of this dissertation is to optimize algorithm to improve the Quality of Experience (QoE) of end-users during video streaming. In this manner, the dissertation aims at identifying how to create algorithms that are disconnected thereby enabling users to have same quality experience on different platforms and optimize quality through increasing their bandwidth without reducing bandwidth of other users who are streaming video.

What is New in the Dissertation

What is new is that it helps users to have control of their bandwidth and give them the opportunity of increasing their bandwidth to their liking. It is apparent that the amount of bandwidth that users can have is determined by network providers, however, this dissertation identifies how users can increase their bandwidth separately without having to depend on the network providers and other users.


logo_essay logo_essay

Request Removal

If you are the original author of this essay and no longer wish to have it published on the ProEssays website, please click below to request its removal:

Similar essays: