Practical Java software optimizations for a high-performance and scalable WAP gateway

No Thumbnail Available
Journal Title
Journal ISSN
Volume Title
Helsinki University of Technology | Diplomityö
Checking the digitized thesis and permission for publishing
Instructions for the author
Date
2009
Major/Subject
Tietämystekniikka
Mcode
T-93
Degree programme
Language
en
Pages
147
Series
Abstract
Java-ohjelmointikieli on suosittu valinta toteutettaessa palvelinpuolen ohjelmistoja, joissa luotettavuus, tietoturva ja joskus myös alustariippumattomuus ovat tärkeitä huomioonotettavia asioita suorituskyvyn ja skaalautuvuuden ohella. Javan tehokkuutta pidetään yleensä huonompana kuin matalamman tason kielillä kuten C, vaikka parannusta onkin tapahtunut viime vuosina. Kun ohjelmistojärjestelmät kasvavat ja tietokoneet tulevat tehokkaammiksi, ohjelmointikielen valinta siirtyy luonnostaan korkeamman tason kieliä kohti, mutta tarve järjestelmän joidenkin osien optimointiin tai skaalautuvien suunnitteluratkaisujen käyttöön ei ole kokonaan poistunut. Tässä diplomityössä esitellään käytännöllisiä Java-ohjelmien optimointimenetelmiä tilanteisiin, joihin törmätään usein korkean suorituskyvyn palvelinohjelmistoissa, sekä arvioidaan niiden vaikutuksia suorituskykyyn ja skaalautuvuuteen samalla, kun vertaillaan eri suunnitteluratkaisuja ja algoritmeja. Optimoinnit pyritään tekemään pääasiassa kohtiin, joissa ne eivät vaikuta liikaa järjestelmän arkkitehtuuriin tai komponenttien välisiin rajapintoihin, eivätkä siten vaaranna raa'an suorituskyvyn vuoksi muita tavoitteita, kuten luotettavuutta. Optimoinnit testataan tämän diplomityön kirjoittajan aiemmin tekemän WAP gateway:n yhteydessä, joka on käytössä useilla mobiiliperaattoreilla eri puolilla maailmaa. Joitakin käsiteltäviä aihealueita ovat: useammille prosessoreille ja lukuisille rinnakkaisille tapahtumille skaalautuva protokollapinon toteutusarkkitehtuuri, skaalautuvia tehtäväjonoalgoritmeja rinnakkaisuutta käyttäviä palvelinohjelmistoja varten, protokollaviestien lukemista tehostava välimuisti hyödyntäen eri viesteissä toistuvia rakenteita sekä ajastin tiedonsiirtoprotokollia varten. Lisäksi esitellään nopea ja skaalautuva toteutus HTTP-protokollasta ja verrattaan sitä tunnettuihin avoimen lähdekoodin toteutuksiin, sekä samassa yhteydessä tutkitaan Javan suorituskykyä matalan tason toiminnoissa. Työssä tutkitaan myös lähestymistapoja rinnakkaisuuden hallintaan segmentoidussa tiedonsiirrossa, sekä vertaillaan joidenkin WAP gateway - järjestelmään tehtyjen optimointien hyötyjä.
Description
Supervisor
Syrjänen, Markku
Thesis advisor
Oksanen, Kenneth
Keywords
Java, Java, protocol stack, protokollapino, performance, suorituskyky, scalability, skaalautuvuus, WAP, WAP, HTTP, HTTP
Other note
Citation