Pushing high frequency data into a web browswer using long polling

dc.contributorAalto-yliopistofi
dc.contributorAalto Universityen
dc.contributor.advisorRönkkö, Kalle
dc.contributor.authorPihkala, Henri
dc.contributor.departmentInformaatio- ja luonnontieteiden tiedekuntafi
dc.contributor.schoolPerustieteiden korkeakoulufi
dc.contributor.schoolSchool of Scienceen
dc.contributor.supervisorSaikkonen, Heikki
dc.date.accessioned2020-12-23T12:07:20Z
dc.date.available2020-12-23T12:07:20Z
dc.date.issued2010
dc.description.abstractWeb applications are evolving from static page sequences into highly interactive AJAX-applications. However, the development is still hindered by the web's classic cornerstone, the request/response architecture, which prevents the server side initiated push functionality required for real-time event-driven applications. Long polling is a way to mimic real push by delaying responses to HTTP requests until an event occurs. Handling long lived connections inflicts a performance penalty on the server, which raises the possibility of scalability issues when there are lots of users or very frequent events. In fact, earlier research shows that long polling cannot handle more than a few hundred simultaneous users. This thesis explores the possibility of using long polling in browser based applications with few simultaneous users but a high rate of events: from tens to hundreds of events per second. To provide an example, an application is designed that shows real-time market data for multiple securities. A suitable architecture is suggested, after which a prototype is built. The prototype is used to generate events to the system and measure server cpu load and publish delay as a function of publish rate. The results show that both cpu load and publish delay have a linear and well-behaved relationship with publish rate, and that the system can not be easily saturated by high publish rates if the number of users is low. When the application is not intended for internet scale use, but the benefits of browser based applications are still desired, long polling is found to be a good option for implementing server push.en
dc.description.abstractWeb-sovellukset ovat muuttumassa staattisista sivustoista erittäin interaktiivisiksi AJAX-sovelluksiksi. Kuitenkin edelleen webin modernistumista rajoittaa sen vanha kulmakivi, pyyntö-vastaus-arkkitehtuuri, joka ei salli palvelimen aloitteesta tapahtuvaa kommunikaatiota eli työntöä. Pitkä pollaus on tapa matkia oikeaa työntöä siten, että palvelin vastaa http-pyyntöön viivästetysti vasta, kun uutta tietoa ilmenee. Pitkäikäisten yhteyksien käsittelystä syntyy palvelimelle ylimääräistä kuormaa, mikä herättää kysymyksen menetelmän skaalautuvuudesta suurille käyttäjämäärille tai usein päivittyvälle tiedolle. Aiemmassa tutkimuksessa onkin todettu, että menetelmä ei kestä suuria käyttäjämääriä. Tässä diplomityössä tutkitaan voiko pitkää pollausta käyttää sellaisissa selainpohjaisissa sovelluksissa, joilla on vähän käyttäjiä mutta joissa päivitysten tiheys voi olla kymmenistä jopa satoihin julkaisuihin sekunnissa. Esimerkkinä tarkastellaan useiden arvopaperien reaaliaikaisia hintatietoja näyttävää pörssisovellusta. Sovellukselle esitetään arkkitehtuuri ja sen pohjalta implementoidaan prototyyppi, joka tuottaa keinotekoisia julkaisuja järjestelmään ja jolla mitataan palvelimen suorittimen kuormitusta sekä tiedonkulun viivettä ja luotettavuutta julkaisujen määrän aikayksikössä funktiona. Tulokset näyttävät, että sekä suorittimen kuormitus että julkaisuviive riippuvat julkaisunopeudesta lineaarisesti ja ennustettavasti, eikä järjestelmää ole helppo kuormittaa äärimmilleen pienillä käyttäjämäärillä edes korkeilla julkaisunopeuksilla. Pitkä pollaus todetaan sopivaksi tavaksi toteuttaa työntö silloin, kun sovelluksella ei ole paljon käyttäjiä mutta silti halutaan hyötyä selainpohjaisuuden tarjoamista eduista.fi
dc.format.extent[10] + 51
dc.identifier.urihttps://aaltodoc.aalto.fi/handle/123456789/97756
dc.identifier.urnURN:NBN:fi:aalto-2020122356583
dc.language.isofien
dc.programmeTietotekniikan tutkinto-ohjelmafi
dc.programme.majorOhjelmistotekniikkafi
dc.programme.mcodeT-106fi
dc.rights.accesslevelclosedAccess
dc.subject.keywordajaxen
dc.subject.keywordtyöntöfi
dc.subject.keywordserver pushen
dc.subject.keywordpitkä pollausfi
dc.subject.keywordcometen
dc.subject.keywordskaalautuvuusfi
dc.subject.keywordbayeuxen
dc.subject.keywordlong pollingen
dc.subject.keywordscalabilityen
dc.titlePushing high frequency data into a web browswer using long pollingen
dc.titlePitkän pollauksen suorituskyky tiheästi päivittyvän tiedon työntämisessä selaimellefi
dc.type.okmG2 Pro gradu, diplomityö
dc.type.ontasotMaster's thesisen
dc.type.ontasotPro gradu -tutkielmafi
dc.type.publicationmasterThesis
local.aalto.digiauthask
local.aalto.digifolderAalto_11768
local.aalto.idinssi39448
local.aalto.inssiarchivenr7135
local.aalto.inssilocationP1 Ark Aalto
local.aalto.openaccessno

Files