Reaaliaikaiset menetelmät web-sovelluksissa

Web-sovellusten määrä kasvaa jatkuvasti. Nykyään web-teknologiat ovat kehittyneet jo sen verran pitkälle, että edistyksellisien web-sovellusten kehittäminen on mahdollista pelkästään selainten natiivien teknologioiden avulla. Monet työpöytäsovellukset onkin jo siirretty webbiin ja reaaliaikaisuus on...

Full description

Bibliographic Details
Main Author: Rusila, Santeri
Other Authors: Informaatioteknologian tiedekunta, Faculty of Information Technology, Informaatioteknologia, Information Technology, Jyväskylän yliopisto, University of Jyväskylä
Format: Master's thesis
Language:fin
Published: 2018
Subjects:
Online Access: https://jyx.jyu.fi/handle/123456789/59918
_version_ 1826225743462400000
author Rusila, Santeri
author2 Informaatioteknologian tiedekunta Faculty of Information Technology Informaatioteknologia Information Technology Jyväskylän yliopisto University of Jyväskylä
author_facet Rusila, Santeri Informaatioteknologian tiedekunta Faculty of Information Technology Informaatioteknologia Information Technology Jyväskylän yliopisto University of Jyväskylä Rusila, Santeri Informaatioteknologian tiedekunta Faculty of Information Technology Informaatioteknologia Information Technology Jyväskylän yliopisto University of Jyväskylä
author_sort Rusila, Santeri
datasource_str_mv jyx
description Web-sovellusten määrä kasvaa jatkuvasti. Nykyään web-teknologiat ovat kehittyneet jo sen verran pitkälle, että edistyksellisien web-sovellusten kehittäminen on mahdollista pelkästään selainten natiivien teknologioiden avulla. Monet työpöytäsovellukset onkin jo siirretty webbiin ja reaaliaikaisuus on selvästi yleistynyt. Tässä tutkielmassa verrattiin suosituimpia reaaliaikaisia tekniikoita. Tutkittavia tekniikoita olivat HTTP Polling, HTTP Long Polling, Server-Sent Events, HTTP Streaming ja WebSocket. Tutkimuksessa toteutettiin viestisovellus jokaisella tekniikalla. Jokaisen viestisovelluksen pakettien kokoja vertailtiin ja suoritettiin rasitustestejä palvelimella. Tulosten perusteella WebSocket on selkeästi tehokkain tapa toteuttaa reaaliaikaisia web-sovelluksia. HTTP Streaming ja Server-Sent Events olivat tulosten perusteella odotetustikin melkolailla samanlaisia. HTTP Long Polling saattaa olla raskas tekniikka suurilla viestimäärillä. The amount of web applications is increasing. Nowadays, web technologies have evolved so much that the most advanced web applications can be developed using only native browser technologies. Many desktop applications have been moved to the web and real-time capabilities have increased in web applications a lot. The aim of this work was to compare the most popular techniques used to achieve real-time data flow. The techniques were HTTP Polling, HTTP Long Polling, Server-Sent events, HTTP Streaming and WebSocket. A real- time messaging application was implemented witch each of the techniques. Package sizes were compared between the real-time techniques and load tests were performed for the server side applications. Results indicate that the WebSocket is clearly the most efficient technique to develop real-time web applications. HTTP Streaming and Server-Sent Events were pretty much the same when comparing the results, but that was expected. HTTP Long Polling can be very heavy for server, especially with large amount of messages.
first_indexed 2019-08-19T08:21:29Z
format Pro gradu
free_online_boolean 1
fullrecord [{"key": "dc.contributor.advisor", "value": "Lappalainen, Vesa", "language": "", "element": "contributor", "qualifier": "advisor", "schema": "dc"}, {"key": "dc.contributor.advisor", "value": "Viinikainen, Ari", "language": "", "element": "contributor", "qualifier": "advisor", "schema": "dc"}, {"key": "dc.contributor.author", "value": "Rusila, Santeri", "language": "", "element": "contributor", "qualifier": "author", "schema": "dc"}, {"key": "dc.date.accessioned", "value": "2018-10-24T06:48:15Z", "language": null, "element": "date", "qualifier": "accessioned", "schema": "dc"}, {"key": "dc.date.available", "value": "2018-10-24T06:48:15Z", "language": null, "element": "date", "qualifier": "available", "schema": "dc"}, {"key": "dc.date.issued", "value": "2018", "language": "", "element": "date", "qualifier": "issued", "schema": "dc"}, {"key": "dc.identifier.uri", "value": "https://jyx.jyu.fi/handle/123456789/59918", "language": null, "element": "identifier", "qualifier": "uri", "schema": "dc"}, {"key": "dc.description.abstract", "value": "Web-sovellusten m\u00e4\u00e4r\u00e4 kasvaa jatkuvasti. Nyky\u00e4\u00e4n web-teknologiat ovat kehittyneet jo sen verran pitk\u00e4lle, ett\u00e4 edistyksellisien web-sovellusten kehitt\u00e4minen on mahdollista pelk\u00e4st\u00e4\u00e4n selainten natiivien teknologioiden avulla. Monet ty\u00f6p\u00f6yt\u00e4sovellukset onkin jo siirretty webbiin ja reaaliaikaisuus on selv\u00e4sti yleistynyt. T\u00e4ss\u00e4 tutkielmassa verrattiin suosituimpia reaaliaikaisia tekniikoita. Tutkittavia tekniikoita olivat HTTP Polling, HTTP Long Polling, Server-Sent Events, HTTP Streaming ja WebSocket. Tutkimuksessa toteutettiin viestisovellus jokaisella tekniikalla. Jokaisen viestisovelluksen pakettien kokoja vertailtiin ja suoritettiin rasitustestej\u00e4 palvelimella. Tulosten perusteella WebSocket on selke\u00e4sti tehokkain tapa toteuttaa reaaliaikaisia web-sovelluksia. HTTP Streaming ja Server-Sent Events olivat tulosten perusteella odotetustikin melkolailla samanlaisia. HTTP Long Polling saattaa olla raskas tekniikka suurilla viestim\u00e4\u00e4rill\u00e4.", "language": "fi", "element": "description", "qualifier": "abstract", "schema": "dc"}, {"key": "dc.description.abstract", "value": "The amount of web applications is increasing. Nowadays, web technologies have evolved so much that the most advanced web applications can be developed using only native browser technologies. Many desktop applications have been moved to the web and real-time capabilities have increased in web applications a lot. The aim of this work was to compare the most popular techniques used to achieve real-time data flow. The techniques were HTTP Polling, HTTP Long Polling, Server-Sent events, HTTP Streaming and WebSocket. A real- time messaging application was implemented witch each of the techniques. Package sizes were compared between the real-time techniques and load tests were performed for the server side applications. Results indicate that the WebSocket is clearly the most efficient technique to develop real-time web applications. HTTP Streaming and Server-Sent Events were pretty much the same when comparing the results, but that was expected. HTTP Long Polling can be very heavy for server, especially with large amount of messages.", "language": "en", "element": "description", "qualifier": "abstract", "schema": "dc"}, {"key": "dc.description.provenance", "value": "Submitted by Paivi Vuorio (paelvuor@jyu.fi) on 2018-10-24T06:48:15Z\nNo. of bitstreams: 0", "language": "en", "element": "description", "qualifier": "provenance", "schema": "dc"}, {"key": "dc.description.provenance", "value": "Made available in DSpace on 2018-10-24T06:48:15Z (GMT). No. of bitstreams: 0\n Previous issue date: 2018", "language": "en", "element": "description", "qualifier": "provenance", "schema": "dc"}, {"key": "dc.format.extent", "value": "112", "language": "", "element": "format", "qualifier": "extent", "schema": "dc"}, {"key": "dc.format.mimetype", "value": "application/pdf", "language": null, "element": "format", "qualifier": "mimetype", "schema": "dc"}, {"key": "dc.language.iso", "value": "fin", "language": null, "element": "language", "qualifier": "iso", "schema": "dc"}, {"key": "dc.rights", "value": "In Copyright", "language": "en", "element": "rights", "qualifier": null, "schema": "dc"}, {"key": "dc.subject.other", "value": "web", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "WebSocket", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "HTTP", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.title", "value": "Reaaliaikaiset menetelm\u00e4t web-sovelluksissa", "language": "", "element": "title", "qualifier": null, "schema": "dc"}, {"key": "dc.type", "value": "master thesis", "language": null, "element": "type", "qualifier": null, "schema": "dc"}, {"key": "dc.identifier.urn", "value": "URN:NBN:fi:jyu-201810244507", "language": "", "element": "identifier", "qualifier": "urn", "schema": "dc"}, {"key": "dc.type.ontasot", "value": "Pro gradu -tutkielma", "language": "fi", "element": "type", "qualifier": "ontasot", "schema": "dc"}, {"key": "dc.type.ontasot", "value": "Master\u2019s thesis", "language": "en", "element": "type", "qualifier": "ontasot", "schema": "dc"}, {"key": "dc.contributor.faculty", "value": "Informaatioteknologian tiedekunta", "language": "fi", "element": "contributor", "qualifier": "faculty", "schema": "dc"}, {"key": "dc.contributor.faculty", "value": "Faculty of Information Technology", "language": "en", "element": "contributor", "qualifier": "faculty", "schema": "dc"}, {"key": "dc.contributor.department", "value": "Informaatioteknologia", "language": "fi", "element": "contributor", "qualifier": "department", "schema": "dc"}, {"key": "dc.contributor.department", "value": "Information Technology", "language": "en", "element": "contributor", "qualifier": "department", "schema": "dc"}, {"key": "dc.contributor.organization", "value": "Jyv\u00e4skyl\u00e4n yliopisto", "language": "fi", "element": "contributor", "qualifier": "organization", "schema": "dc"}, {"key": "dc.contributor.organization", "value": "University of Jyv\u00e4skyl\u00e4", "language": "en", "element": "contributor", "qualifier": "organization", "schema": "dc"}, {"key": "dc.subject.discipline", "value": "Tietotekniikka", "language": "fi", "element": "subject", "qualifier": "discipline", "schema": "dc"}, {"key": "dc.subject.discipline", "value": "Mathematical Information Technology", "language": "en", "element": "subject", "qualifier": "discipline", "schema": "dc"}, {"key": "yvv.contractresearch.funding", "value": "0", "language": "", "element": "contractresearch", "qualifier": "funding", "schema": "yvv"}, {"key": "dc.type.coar", "value": "http://purl.org/coar/resource_type/c_bdcc", "language": null, "element": "type", "qualifier": "coar", "schema": "dc"}, {"key": "dc.rights.accesslevel", "value": "openAccess", "language": null, "element": "rights", "qualifier": "accesslevel", "schema": "dc"}, {"key": "dc.type.publication", "value": "masterThesis", "language": null, "element": "type", "qualifier": "publication", "schema": "dc"}, {"key": "dc.subject.oppiainekoodi", "value": "602", "language": "", "element": "subject", "qualifier": "oppiainekoodi", "schema": "dc"}, {"key": "dc.subject.yso", "value": "Internet", "language": null, "element": "subject", "qualifier": "yso", "schema": "dc"}, {"key": "dc.subject.yso", "value": "reaaliaikaisuus", "language": null, "element": "subject", "qualifier": "yso", "schema": "dc"}, {"key": "dc.subject.yso", "value": "sovellukset (tietotekniikka)", "language": null, "element": "subject", "qualifier": "yso", "schema": "dc"}, {"key": "dc.subject.yso", "value": "sovelluskehykset", "language": null, "element": "subject", "qualifier": "yso", "schema": "dc"}, {"key": "dc.subject.yso", "value": "rajapinnat (tietokoneohjelmat)", "language": null, "element": "subject", "qualifier": "yso", "schema": "dc"}, {"key": "dc.subject.yso", "value": "palvelimet", "language": null, "element": "subject", "qualifier": "yso", "schema": "dc"}, {"key": "dc.format.content", "value": "fulltext", "language": null, "element": "format", "qualifier": "content", "schema": "dc"}, {"key": "dc.rights.url", "value": "https://rightsstatements.org/page/InC/1.0/", "language": null, "element": "rights", "qualifier": "url", "schema": "dc"}, {"key": "dc.type.okm", "value": "G2", "language": null, "element": "type", "qualifier": "okm", "schema": "dc"}]
id jyx.123456789_59918
language fin
last_indexed 2025-02-18T10:55:21Z
main_date 2018-01-01T00:00:00Z
main_date_str 2018
online_boolean 1
online_urls_str_mv {"url":"https:\/\/jyx.jyu.fi\/bitstreams\/245af334-8aff-4acb-9426-801194c8f467\/download","text":"URN:NBN:fi:jyu-201810244507.pdf","source":"jyx","mediaType":"application\/pdf"}
publishDate 2018
record_format qdc
source_str_mv jyx
spellingShingle Rusila, Santeri Reaaliaikaiset menetelmät web-sovelluksissa web WebSocket HTTP Tietotekniikka Mathematical Information Technology 602 Internet reaaliaikaisuus sovellukset (tietotekniikka) sovelluskehykset rajapinnat (tietokoneohjelmat) palvelimet
title Reaaliaikaiset menetelmät web-sovelluksissa
title_full Reaaliaikaiset menetelmät web-sovelluksissa
title_fullStr Reaaliaikaiset menetelmät web-sovelluksissa Reaaliaikaiset menetelmät web-sovelluksissa
title_full_unstemmed Reaaliaikaiset menetelmät web-sovelluksissa Reaaliaikaiset menetelmät web-sovelluksissa
title_short Reaaliaikaiset menetelmät web-sovelluksissa
title_sort reaaliaikaiset menetelmät web sovelluksissa
title_txtP Reaaliaikaiset menetelmät web-sovelluksissa
topic web WebSocket HTTP Tietotekniikka Mathematical Information Technology 602 Internet reaaliaikaisuus sovellukset (tietotekniikka) sovelluskehykset rajapinnat (tietokoneohjelmat) palvelimet
topic_facet 602 HTTP Internet Mathematical Information Technology Tietotekniikka WebSocket palvelimet rajapinnat (tietokoneohjelmat) reaaliaikaisuus sovellukset (tietotekniikka) sovelluskehykset web
url https://jyx.jyu.fi/handle/123456789/59918 http://www.urn.fi/URN:NBN:fi:jyu-201810244507
work_keys_str_mv AT rusilasanteri reaaliaikaisetmenetelmätwebsovelluksissa