RSS: push vs. pull

Web, Dev & Technology •  donderdag 09 september 2004 •  12 reactie(s)
Maanvis linkt naar een aantal zaken die ik zelf ook al had gelezen, maar waar ik eigenlijk niet zoveel over wist te zeggen. Immers: RSS slurpen kost bandbreedte. Ja, klopt. Lastig. En toen?

Hij noemt als oplossing, of denkwijze die tot een oplossing moet leiden, dat het concept waarmee RSS werkt, de boosdoener is. En dat is ook zo natuurlijk. Je (lees: jouw aggregator) moet elke keer zelf contact opnemen met de server om te kijken of er nieuwe items zijn. Zijn die er niet, dan heb je bandbreedte verspild aan de request. En aangezien een aggregator dit vaker doet dan jijzelf als mens, kan dat best oplopen.

De server zou dan ook naar de client toe moeten komen met een aanbod: "hey, ik heb nieuwe dingetjes, hebbuh?". Op deze manier kost het alleen nuttig gebruikte bandbreedte. Het is alleen wat lastiger, en ik vroeg me af of Maanvis daar al ideeën over heeft: moet de server dan gaan bijhouden welke clients items willen ontvangen? En hoe? RSS is nu een "zo, die feed staat, geen omkijken meer naar"-medium. Clients komen zelf zo af en toe 's kijken, en klaar ben je. De verantwoordelijkheid bij de server plaatsen geeft een publisher veel meer verantwoordelijkheid, meer werk te doen en dat kan, als tegenstelling van het gemak van RSS nu, ervoor zorgen dat websites 'dan maar geen feed' nemen.

Het is een leuk idee, de methode omdraaien, maar hoe wil je dat bewerkstelligen?

Ping. Vlak voordat ik op submit druk bedenk ik me iets. Stel dat een feed een element met daarin de update-frequentie zou hebben, en dat aggregators die gebruiken om de ophaalmomenten op af te stemmen? Dat kost moeite voor de publisher, want de frequentie moet berekend (en onderhouden) worden. Goed punt. Misschien kan een aggregator dat dan zelf doen? Zelf een frequentie berekenen en daar het schema op aanpassen? Zomaar even een los ideetje...
Reacties op dit bericht
Dennis · 09.09.2004 @ 18:41 · website

Ja bandbreede is bij mijn site niet opgegaan aan RSS maar z'n 1000 mensen die een filmpje ervan downloaden...

Pff

Maanvis · 09.09.2004 @ 19:42 · website

Er is met PUSH geen manier te bedenken waarbij een publisher op net zo'n makkelijke manier een RSS-feed kon implementeren als nu het geval is, eigenlijk . Maargoed, net zoals bij RSS zou deze technologie ook in weblogsoftware geïmplementeerd moeten kunnen worden zodat men er bijna geen moeite voor hoeft te doen. Maargoed, om nog even op je verhaal terug te komen : Ja, de server zal bij moeten houden wie de items moet ontvangen, en de lezers van een feed moeten er eerst 'formeel' op subscriben, wat te doen is dmv een XMLRPC request. Zodra je een weblogitem post zul je alle IP-adressen af moeten gaan en daarnaartoe (bijv. ook dmv XMLRPC) het nieuwe weblogitem sturen. Overigens zul je met dit 'subscribe' request altijd mee moeten geven wat je laatst ontvangen item is, zodat de server alle items die nieuwer dan dat item zijn, kan sturen. Opzich is dit nog best werkbaar, maar het grootste probleem is nog wel : wat doe je als de client er niet is? Wanneer ga je dan zeggen: okay, hij is er niet, dus laten we maar stoppen met versturen? Je kan aggregators natuurlijk een 'unsubscribe' request laten sturen om aan te laten gevan dat ze niet meer geupdate hoeven te worden, maar je moet er niet vanuit gaan dat alle aggregators dit ook zullen doen (bijv. als de stroom van je PC uitvalt of je IP verandert) Ideeën zijn in ieder geval welkom

Een updatefrequentie berekenen werkt niet altijd even goed, vooral als sites maar een laag aantal nieuwsitems aanbieden. Misschien weet je nog dat ik hier ooit zelf een speeltje voor heb geprogd. http://vandedonk.nl/rssstats.php . Wat de Actieve en Absolute updatefrequenties zijn wist ik zelf niet meer, maar na wat zoekwerk kwam ik erachter dat de Actieve Updatefrequentie over alle geposte items berekend wordt, en de Absolute het 'nu' ook meetelt. Dwz als je al 30 dagen niets hebt gepost maar daarvoor een stuk of 30 berichten met telkens een uur daartussen, zal je Actieve updatefrequentie op 1 uur liggen, en je absolute updatefrequentie op 1 dag liggen

Jort · 09.09.2004 @ 19:50

Over je idee: Nick Bradbury, de maker van Feeddemon (en topstyle en homesite) heeft er over geschreven. En het wordt het al gebruikt in Feeddemon, dus ik voel me niet schuldig :-)

http://nick.typepad.com/blog/2004/05/rss_readers_and.html
en daarna nog deze:
http://nick.typepad.com/blog/2004/07/more_on_rss_ban.html

Maanvis · 09.09.2004 @ 20:02 · website

Jort>> Feeddemon triggert op het TTL-element, dat daar eigenlijk niet voor bedoeld is

bosmeneer · 09.09.2004 @ 20:24 · website

De PUSH-manier is de ingewikkelde manier, terwijl een blokkade opzetten mij ook geen probleem lijkt. Met de request van de aggregator wordt de tijd van de laatst gelezen post meegestuurd en je krijgt wel of geen toegang tot de feed.

Leukere blokkades zijn tijdslimieten waarin de feed opgehaald mag worden. Komt de aggregator uit een Europees land dan zal deze tussen 9 en 11 uur 's avonds toegang krijgen, voor andere continenten gelden andere tijden.

Zelf heb ik de scheduler op eenmaal-per-dag staan. Vaker haal ik geen feeds op.

bosmeneer · 09.09.2004 @ 20:28 · website

De PUSH-manier is de ingewikkelde manier, terwijl een blokkade opzetten mij juist geen probleem lijkt. Met de request van de aggregator wordt de tijd van de laatst gelezen post meegestuurd en je krijgt wel of geen toegang tot de feed.

Leukere blokkades zijn tijdslimieten waarin de feed opgehaald mag worden. Komt de aggregator uit een Europees land dan zal deze tussen 9 en 11 uur 's avonds toegang krijgen, voor andere continenten gelden andere tijden.

Zelf heb ik sinds een tijdje de scheduler op eenmaal-per-dag staan. Vaker haal ik geen feeds op.

Peter Breuls · 09.09.2004 @ 20:57

Teruggaan, editen en nog een keer submitten helpt niet bosmeneer.

Peter Breuls · 09.09.2004 @ 21:01

Maanvis: ik zie alleen in je eigen verhaal al erg veel obstakels die je methode onwerkbaar maken. Sowieso heb ik er voor FOK! geen zin in om allemaal clients te moeten pingen. Ik zou een systeem moeten maken waarin ik de clients bijhou, ik moet in alle CMS'en een ping-systeem hebben óf een centraal systeem dat af en toe (á la RSS nu) checkt of er updates zijn, en ik zou moeten gaan pingen. Hoop gedoe, tegenover even simpel een XML bestandje maken.

En hoe die frequentie precies berekend zou moeten worden, kweenie. Maar er zou best wat in kunnen zitten.

Maanvis · 09.09.2004 @ 21:25 · website

De methode voor implementatie is idd nogal kut, maar zeker niet onwerkbaar
Jammergenoeg is er geen andere methode voorhanden dan deze, alhoewel dat HTTP IS UPDATED gedoe ook wel heel goed kan werken

Maanvis · 09.09.2004 @ 21:26 · website

Bosmeneer: Ikzelf werk in ploegen, dat zou betekenen dat ik 1 week per 3 weken je feed niet kan checken omdat ik dan aan het werk ben

bosmeneer · 09.09.2004 @ 21:58 · website

@Breuls: Sorry, dat komt doordat het formulier niet direct verwerkt wordt. Ik heb een uur gewacht toen pas de tekst geplaatst was.

@Maanvis: ja. Dan krijg jij van mij toegang in een ander tijdsvak. Het is nogal niet-handig om 4, 6 of 10 keer per uur een feed op te halen die 1 keer per dag of soms 1 keer per week een bericht plaatst. Dát is brandbreedte-slurpen. Nee, niets persoonlijks verder, bijna iedereen doet het, want iedereen wil als eerste weten of er een 2e 9/11-aanval uitgevoerd is.

Maar mijn eerste idee was wel iets serieuzer: je krijgt de gedeeltelijke feed te zien welke jij nog niet hebt gelezen.

Maanvis · 09.09.2004 @ 23:18 · website

Dat request-idee is idd wel een hartstikke leuk idee Het kost wat meer scriptwerk, maar het kan een hoop dataverkeer schelen!

En nu jij:
naam
email
www
bericht
Hoeveel is vier maal drie?
antwoord
   Onthoud naam/email/www
 Gebruik van SML is mogelijk.
Tweets
Nah.. ik kom er net achter dat de bagage handlers mijn after shave uit mijn tas hebben gejat, afgelopen weekend. » 3 uur geleden
Als ik mijn rug insmeer met after-sun voel ik gewoon dat de boel op het punt staat te vervellen. #balen » 6 uur geleden
Oh, ja, ontbijt. Laten we daar maar lunch van maken. :P » 7 uur geleden
Lekker bakkie moby.to/... » 8 uur geleden
Het is SysAdminDay! Allemaal even binnenlopen bij de IT-afdeling en iedereen een handje geven. » 9 uur geleden
Ik ging net naar Google Wave, en het bestaat gewoon nog. #shocking » 20 uur geleden
Wat een rustgevend beeld als 'svn status -u' helemaal geen output meer geeft. Voelt opgeruimd aan. » 21 uur geleden
Er ligt een dode vogel op de Lijnbaan. Kan ik daar nog iemand mee blij maken? » een dag geleden
Dat 'intertial scroll' dat nu op de Mac trackpads aangezet kan worden, is dat dat scrollen dat op de Magic Mouse al kan? #vageomschrijving » gisteren
Wie heeft er zaterdag gefilmd voor Life in a Day? Ik ben het totaal vergeten... breuls.org/... » gisteren
Kat gaat onder bureau aan mijn voeten liggen. Hoe lang voordat ik dat vergeet en 'm per ongeluk een rotschop verkoop? » gisteren
Ben Instapaper aan het ontdekken. Volgens mij best een interessant ding! » gisteren
Links
Lees ook
Onlangs geschreven op mijn Engelse techblog:
De laatste berichten van de Replique Blog:
En jij bent?
Ik ben Peter Breuls, webontwikkelaar, sysadmin en enthousiaste digi-creatieveling. Woonachtig in Rotterdam en werkzaam als administrator voor FOK!, ontwikkelaar voor SIMgroep en eigenaar/ontwikkelaar van Replique. Ik doe graag een biertje of single malt op een terras of in de kroeg. Heb je een interessant webproject? Kom maar op! Ik ben overal voor in.
Zoek en gij zult vinden
Badges & logo's
Zend Certified PHP5 Engineer Creative Commons License View Peter Breuls's profile on LinkedIn Voer voor de RSS reader