Explaining fat pings in cloud pipe
Long polling is a technique used by Dave to receive real-time updates from websites that support RSS cloud or Pub/Sub/Hubbub protocols, despite being behind a firewall that prevents direct access. Instead of just getting the URL of the updated feed, he also receives the actual content of the updated item. This “fat ping” approach reduces the number of feed reads required on the server side, which is beneficial for sites with a lot of user-generated content.
Listen
Transcript
This transcript was automatically generated.
Hey everybody, it’s Dave Winder
here. I thought I would try to
explain verbally what’s going
on there
with that cloud type thing and
all the fat things and stuff
like that. So here’s what’s
going on.
I’m running an aggregator on my desktop behind a firewall. And because I’m behind a firewall, I can’t get the real-time updates from the sites that support RSS cloud. For that matter, I couldn’t get the updates from Pub/Sub/Hubbub either because they need to be able to call a server that’s accessible over the Internet. And because I’m behind a firewall, my desktop machine is not accessible over the Internet. So how do you solve that problem? Well, everybody understands that study this stuff understands. You use a long polling technique to basically get a server running on the desktop to be callable over it. I just need to create a connection to something that acts more or less as a proxy for me on the Internet.
And then basically when there’s an update that comes in, he just pushes that back to me. I create a connection, wait for a response, then when an update comes, he responds and tells me what the update was.
So that way that’s how I get notified in real-time that a change is taking place.
So what comes back to me could be as little as just the URL of the feed that’s changed, in which case what I would then do would be read the feed as I normally would and get the new content.
And honestly for most cases from the client’s point of view , that is the more rational way to go about it because there’s less code to write and because you already have that stuff working basically.
However, when you look at it from the point of view of the owner of the server, it might be better if you didn’t read the feed, if you got along with the notification, you actually got the data that was updated. And then that way the fewer reads of the feed because presumably in some time in the future a lot of these people would be getting notifications this way.
And it turns out this is actually a problem for the people who run big sites that have lots of user- generated content.
They are getting really heavily hit on the RSSQ.
So what I did was I made a fat ping. And so along with the URL of the feed that’s updated I also send you the content of the item that’s changed. Now I don’t generate that content.
That content came out of straight out of the feed. And all I do is I just take the XML elements because it all was XML in the first place. I just take the XML elements that makes up the item or in the case of Adam, I forget what they call it, but whatever it is, I just throw that out to the ping.
I don’t even look at it. I don ’t care. Elsewhere in my code on the server I do care because this is all hooked into my aggregator base. That’s how anybody is going to implement this.
If you’ve already got an aggreg ator and it’s already real-time aware, it’s very easy then to create one of these type servers out of it. And that’s exactly what I’ve done.
And that’s exactly probably what everybody points to here.
So when I wrote my piece I said , “Well, you know, I could normalize this. " What that means basically is I ’m normalizing it in my own database. Everybody has to do that because when I display my River of News I eventually turn that into a text that goes into HTML .
So it gets normalized on its way out. However, I’m not doing that here. And I’m not doing it yet.
I might do it later. With that I’m going to put up for comment because it might be a little bit politically sensitive.
People might think, “Well, he’s taking Adam Cheese and he’s turning it into RSS. " Well, who says he can do that? So I don’t want to even go near that one now.
So I’m just not dealing with it . I’m basically just throwing back out to the – I’m throwing out to the people who are subscribed to the long poll just giving them what I got.
And so that’s why there may be some confusion about this.
But I haven’t read any docs yet . Eventually this is all I want to seem very normal right now for a lot of people I imagine it’s a pretty new idea. But there’s nothing really inherently complicated about it .
So anyway, that’s all I’ve got to say today.
Oops, hold on. Where’s my phone ? There we go. Okay, see you later.
I’m running an aggregator on my desktop behind a firewall. And because I’m behind a firewall, I can’t get the real-time updates from the sites that support RSS cloud. For that matter, I couldn’t get the updates from Pub/Sub/Hubbub either because they need to be able to call a server that’s accessible over the Internet. And because I’m behind a firewall, my desktop machine is not accessible over the Internet. So how do you solve that problem? Well, everybody understands that study this stuff understands. You use a long polling technique to basically get a server running on the desktop to be callable over it. I just need to create a connection to something that acts more or less as a proxy for me on the Internet.
And then basically when there’s an update that comes in, he just pushes that back to me. I create a connection, wait for a response, then when an update comes, he responds and tells me what the update was.
So that way that’s how I get notified in real-time that a change is taking place.
So what comes back to me could be as little as just the URL of the feed that’s changed, in which case what I would then do would be read the feed as I normally would and get the new content.
And honestly for most cases from the client’s point of view , that is the more rational way to go about it because there’s less code to write and because you already have that stuff working basically.
However, when you look at it from the point of view of the owner of the server, it might be better if you didn’t read the feed, if you got along with the notification, you actually got the data that was updated. And then that way the fewer reads of the feed because presumably in some time in the future a lot of these people would be getting notifications this way.
And it turns out this is actually a problem for the people who run big sites that have lots of user- generated content.
They are getting really heavily hit on the RSSQ.
So what I did was I made a fat ping. And so along with the URL of the feed that’s updated I also send you the content of the item that’s changed. Now I don’t generate that content.
That content came out of straight out of the feed. And all I do is I just take the XML elements because it all was XML in the first place. I just take the XML elements that makes up the item or in the case of Adam, I forget what they call it, but whatever it is, I just throw that out to the ping.
I don’t even look at it. I don ’t care. Elsewhere in my code on the server I do care because this is all hooked into my aggregator base. That’s how anybody is going to implement this.
If you’ve already got an aggreg ator and it’s already real-time aware, it’s very easy then to create one of these type servers out of it. And that’s exactly what I’ve done.
And that’s exactly probably what everybody points to here.
So when I wrote my piece I said , “Well, you know, I could normalize this. " What that means basically is I ’m normalizing it in my own database. Everybody has to do that because when I display my River of News I eventually turn that into a text that goes into HTML .
So it gets normalized on its way out. However, I’m not doing that here. And I’m not doing it yet.
I might do it later. With that I’m going to put up for comment because it might be a little bit politically sensitive.
People might think, “Well, he’s taking Adam Cheese and he’s turning it into RSS. " Well, who says he can do that? So I don’t want to even go near that one now.
So I’m just not dealing with it . I’m basically just throwing back out to the – I’m throwing out to the people who are subscribed to the long poll just giving them what I got.
And so that’s why there may be some confusion about this.
But I haven’t read any docs yet . Eventually this is all I want to seem very normal right now for a lot of people I imagine it’s a pretty new idea. But there’s nothing really inherently complicated about it .
So anyway, that’s all I’ve got to say today.
Oops, hold on. Where’s my phone ? There we go. Okay, see you later.