= Satellite Content Delivery Network project=
'''2016 WINLAB Summer Internship'''
{{{
#!html
}}}
== Satellite Content Delivery Network Background ==
A SCDN is a Content Delivery Network that utilizes satellite as a broadcast medium to distribute popular content across a CDN’s servers. As a CDN provides faster user access to content by geographically distributed servers in between the client and the content provider, satellite provides an alternate way for content providers push popular content onto the CDN's servers. Combined with a terrestrial CDN, a Satellite CDN reduces traffic on terrestrial networks especially if many people are requesting the same content.
The figure above shows a basic SCDN setup built using MobilityFirst (MF) components.
== Project: Implementation of MobilityFirst Proxy in Apache Tomcat Server==
The goal of this project is to improve the components of the Satellite Content Delivery Network (SCDN) MobilityFirst (MF) setup, specifically the MFProxy. This was done by re-implementing the MFProxy as a Java Servlet filter in an Apache Tomcat Server. Within the SCDN, the MFproxy ensures that the client can properly request content and then receive that content.
=== Project Description ===
The MobilityFirst proxy, has the purpose of translating a http request into a GET call in the MF API to get content from the server. The GET call needs specific information that the routers pass to the server, which recognizes the GUID (Globally Unique Identifiers) which is the ID of content, and send back the content to the proxy to relay to the client. The application needs to:
1. Parse the HTTP Request (ex. http://localhost:8080/content/GUID, or http://localhost:8080/basic/query?)
2. Send a GET request using JMF API (Java MobilityFirst) and receive the content
3. Send content back with the HTTP Response (ex. .mpd file containing video segment mappings, or video segments)
The project is being implemented in the Netbeans IDE (v 8.02) with the tomcat server (v 8.0.27) that comes from the Netbeans installation. This application is mainly being implemented using a Filter in an Apache Tomcat server. The filter processes all requests before it is sent to a Servlet which can also process requests. This is to provide a higher-level filtering for requests that are specifically understood and have specific functions that are unrelated to other functions of the Servlets that can be implemented in the server.
[[Image(http://www.orbit-lab.org/raw-attachment/wiki/Other/Summer/2016/SCDN_Project/MFProxy.2.png)]]
=== MFProxy Improvements ===
Implemented as a Tomcat server, the MFProxy has several advantages to it's previous implementation as a Mongoose (C/C++) server.
* Tomcat Servers natively support multi-threading, where this had to be manually implemented in a Mongoose server
* It is more portable, the Java filter can be deployed as a WAR file onto any Tomcat server and be functional
* Also simpler to debug the application
However this is likely at the cost of performance, as Mongoose is an embedded web server implemented in a lower level language.
=== Future Work ===
* Running a performance test between the two different types of proxies to quantify the difference in performance
* Implement a querying capability for the MFProxy
=== People ===
{{{
#!html
Seo Bo Shim - rising junior in Electrical and Computer Engineering Undergraduate Program at Rutgers University.
Advisors:
Jiachen Chen
Shashikanth Penugonde
}}}
=== Weekly Project Progress ===
[http://www.orbit-lab.org/raw-attachment/wiki/Other/Summer/2016/SCDN_Project/SCDN%20Week%201.pptx Week 1][[BR]][http://www.orbit-lab.org/raw-attachment/wiki/Other/Summer/2016/SCDN_Project/SCDN%20Week%202.pptx Week 2][[BR]][http://www.orbit-lab.org/raw-attachment/wiki/Other/Summer/2016/SCDN_Project/SCDN%20Week%203.pptx Week 3][[BR]][http://www.orbit-lab.org/raw-attachment/wiki/Other/Summer/2016/SCDN_Project/SCDN%20Week%204.pptx Week 4][[BR]][http://www.orbit-lab.org/raw-attachment/wiki/Other/Summer/2016/SCDN_Project/SCDN%20Week%205.pptx Week 5][[BR]][http://www.orbit-lab.org/raw-attachment/wiki/Other/Summer/2016/SCDN_Project/SCDN%20Week%206.pptx Week 6][[BR]][http://www.orbit-lab.org/raw-attachment/wiki/Other/Summer/2016/SCDN_Project/SCDN%20Week%207.pptx Week 7][[BR]][http://www.orbit-lab.org/raw-attachment/wiki/Other/Summer/2016/SCDN_Project/SCDN%20Week%208.pptx Week 8][[BR]]Week 9[[BR]][http://www.orbit-lab.org/raw-attachment/wiki/Other/Summer/2016/SCDN_Project/SCDN%20Week%2010.pptx Week 10]