[ccnx-dev] Dynamic-content oriented applications

sbarber at parc.com sbarber at parc.com
Fri Jun 18 16:36:34 PDT 2010

Hi Gustavo,
The expiration time is just a hint to the caches, and not to be relied on. The real trick here is to include a version component in the content name. Every time a new version is available the source of the content would make a new name available with an updated version field. The clients would use 'getLatestVersion' to ensure they are getting the most recent content.  getLatestVersion recursively asks for newer versions until it gets no further response, and assumes that the last response it got is the most recent version. This way it ensures that it always goes back to the content source.


From: Gustavo Martínez Barbero [mailto:gusmb.86 at gmail.com] 
Sent: Tuesday, June 15, 2010 4:45 AM
To: Barber, Simon <Simon.Barber at parc.com>
Cc: ccnx-dev at ccnx.org
Subject: Re: [ccnx-dev] Dynamic-content oriented applications

All right. So, as I understand, dynamic-content oriented applications should set a very short storage time in data packets, so that further interest will come again to the original source. However, I wonder what would happen in case there is some content stored somewhere in between (or in the original source CS), which shouldn't be there but for some reason it is. Is there any way to tell CCN to generate dynamically a new version of the content, even if there's is already a version in the CS? 

And also, thinking about static content that I want to make dynamic, let's think about this scenario: I could have already published 3 versions of a static content with a long expiration time (maybe a logo image), and then I decide that the content is not static anymore and for further times I want to generate it dynamically in the Server (for example, I would like that logo to change on every request), so when I publish version 4 with a very short expiration time (I could have first deleted previous versions from the original CS and forced the client application to send recursive interest until it reaches the original source), so it will be deleted from every Content Store as soon as possible. At that time, what happens with the previous versions of the content? are they also deleted? In case not, next time I express an interest for that content, which should be now dynamic, I will get version 3 instead of new content.


2010/6/14 <sbarber at parc.com>

	Hi Gustavo,
	You have got the mechanism about right - the names are made of components, and there is a convention for a special 'version' component. This convention allows new versions of content to be named. There is an ordering specified for name components. The interest packets include a simple search query for names, and can search for an exact name upto the version component, and then ask for any data where the version name component is greater than a certain component value. This allows one to search for content that is newer than the content you already have. You can also specify in the interest that you want responses with the highest known ordered component, so asking for the newest version. Of course if a router between you and the definitive source has a version newer than you have, but older than the latest available you will receive that, hence you should recursively ask for newer versions until you receive no answer. This procedure will get you the latest version. In the java code you can see various methods related to the 'getLatestVersion' functionality.


	From: ccnx-dev-bounces at ccnx.org [mailto:ccnx-dev-bounces at ccnx.org] On Behalf Of Gustavo Martínez Barbero
	Sent: Monday, June 14, 2010 3:40 AM
	To: ccnx-dev at ccnx.org
	Subject: [ccnx-dev] Dynamic-content oriented applications
	Hi all,
	I would like to ask about some issues that came to my mind thinking about CCN. I'm thinking about the case of the mail system (or in general dynamic-content oriented applications, like social networks). Let's think about the mail system, in which you always ask for the same content name (your mailbox), but the content is always dynamically generated, since you could have a new mail every 5 minutes (Or 100 mails every 5 minutes:) ). I guess the only way to handle this in CCN is to have somehow different names each time for the same content, and the client should now a standard way to provide that name (for example, by adding the HTTP session ID to the name...). Otherwise, if the same name is provided, the newest version of the content would be retrieved from the first content store where it is available (which could be locally...). Or even if the mail server is down, and I ask for my mailbox with the same name as the previous time, I would get that content and I wouldn't know that the mail server is down, and that I have probably received new mail. 
	What am I missing? How is this managed in CCN? Should CCN define some mechanism to identify dynamic content? I guess this kind of content shouldn't be stored in any CS, as it becomes obsolete at the same time as it is consumed...
	Gustavo Martínez Barbero

Gustavo Martínez Barbero

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.ccnx.org/pipermail/ccnx-dev/attachments/20100618/02c67d19/attachment.html>

More information about the ccnx-dev mailing list