The concept of CDN (Content Delivery Network) is an old one. It means that there is a service that takes care of taking your content from your server to whosoever demands it, like the courier companies do. Only, a CDN that exists for load balancing or providing high availability services is something that's been evolving recently.
In fact, if you look at the listing at web-caching.com/cdns. html, you will notice that there are CDNs for different purposes, ranging from static content through streaming media to EDGE and rights-protected broadcasting. Let's take a step back and examine why these networks exist.
A one word answer-bandwidth. It costs a lot of money to put a server on the Internet and one of the costs involved is bandwidth. Typically, you get a fixed amount of bandwidth to use in a month (or billing cycle) and for anything above that, you are billed. Suppose, your organization is bringing out a new product that's going to be downloaded by everyone, there would be no way to ensure the well-being of your server without significant investments to enhance both your servers as well as bandwidth. For many emerging businesses today, this is just not viable.
That's where CDNs step in. A CDN allows you to mirror (or replicate) your content on their servers for a short period of time. This time interval could range from a few hours to a few days. Within this period, the CDN provider's network will take the brunt of visitor load on your website and relieve your systems of that bandwidth. Most CDNs also give you (the website owner) a lot of control on what content is available on their network and for how long.
The usual procedure for setting up a CDN service for your website might again involve payment, but there are free services such as CoralCDN promising to take this Web-model to the next level. Let's look more closely at what CoralCDN is doing.
This is a service from the New York University's Secure Computer Systems project. CoralCDN is funded by MIT's Project IRIS (Infrastructure for Resilient Internet Systems). It aims to create a de-centralized and self-organizing peer-to-peer content delivery mechanism. Currently, the network has about 225 nodes all over the world and plans to expand services over systems and networks belonging to third parties that have bandwidth to spare.
CoralCDN provides a generic URL (.nyud.net) at port 8090 that you can insert into your regular URL to get the network to automatically include your website in its cache-no setups, no sign-up forms and free of cost.
For example, to include pcquest. com in CoralCDN, you just have to type in pcquest.com.nyud.net :8090 on the Web browser instead of just pcquest.com. Hold on a second! One, how do you let people know about this long URL and two, isn't that too long to remember or type in?
CoralCDN is more server-operator centric than being end-user centric. That is, as a Web master, you can simply redirect the visitor to your server to a CoralCDN URL than advertise the URL itself somewhere. This also allows you to control for what pages the user sees the cached pages and for which the live ones. Typically there would be a homepage for a website and a script could determine whether the visitor could be served from the actual server itself or from the CDN.
How it works
So, how does this work?When a visitor hits your CDN URL, the CDN server requests live content from your server(s) and caches it before displaying to the user.
Content from third-party sites (like advertisements) are not given this benefit, since they are always absolutely referenced (full URL instead of relative).
The second time the request comes to the CDN URL, if the life time of the cache is still valid, the cached content is served. According to the FAQs on CoralCDN, their servers also poll your website periodically for new information. Cached content is also replicated across their servers so that it can be served from the location closest to you.
Today, much of the search-engine optimization depends on Web pages having a large number of links pointing to it. A part of this is because search-ranking algorithms consider such content with more importance. Since the content itself resides on the CDN's servers while being served from there, would that page's rank actually improve if multiple CDN URLs are generated and submitted for it? We found no conclusive answer since such an effect would build up over time.
CoralCDN's proposed use for their service is for posting links on blogs and Wikis. And currently, they are only serving static content. Note, however, that the 'static' content does not preclude the use of server-side scripting. What they mean is content that does not keep changing, unlike that on a news or forum website.
They also do not encourage CoralCDN use for file-download mirroring.
As of now, any content on such networks cannot be personalized (through cookies, etc) because the network itself does not support cookies by design. Let's explain. Cookies are allowed to be set and manipulated only by the original website. So, if pcquest.com creates a cookie, it cannot be manipulated by pcquest.com.nyud. net. Trying to do this would show a security error.
It is natural to expect that visitors accessing your website through the CDN will not register in your logs. The best work around for this is to have some element unique to each page that must come from your server and cannot be cached-doing this is easy and usually suffices to append a parameter with a session ID value.
We also found on the CoralCDN FAQs that the service does not operate well with a Windows DNS server. However, we use a Win 2000 DNS server in PCQuest and CDN worked just fine for us.
IBM Research predicts that application distribution would be the next level of CDN where Web applications can also extend personalization to the distributed content. This would be done by sharing both code as well as data. IBM Research's own media portal (http://www.research.ibm.com/cdn/mediaportal.html) seeks to do this for digital video content.
Sujay V Sarma