Veijo Vainionpää. Näkökohtia tehokkaan web-sovelluksen suunnitteluun

Koko: px
Aloita esitys sivulta:

Download "Veijo Vainionpää. Näkökohtia tehokkaan web-sovelluksen suunnitteluun"

Transkriptio

1 Näkökohtia tehokkaan web-sovelluksen suunnitteluun Veijo Vainionpää HELSINGIN AMMATTIKORKEAKOULU STADIAN JULKAISUJA SARJA C: OPINNÄYTETYÖT 5

2 Veijo Vainionpää Näkökohtia tehokkaan web-sovelluksen suunnitteluun Helsingin ammattikorkeakoulu Stadian julkaisuja Sarja C: Opinnäytetyöt

3 Julkaisija Helsingin ammattikorkeakoulu Stadia ISBN ISSN

4 Sisällys 1 Johdanto Internet ja verkkopalvelut Staattiset sivut Dynaamiset sivut Käytettävyys WWW-palvelut Verkkopalvelujen tulevaisuus WWW-sovellusten arkkitehtuurit Web-sovellusten vaatimukset CGI-arkkitehtuuri FastCGI-arkkitehtuuri mod_perl Apache-laajennus Palvelinlaajennusrajapinnat ASP-arkkitehtuuri ASP.NET-arkkitehtuuri PHP-teknologia Java Servlets -arkkitehtuuri JavaServer Pages -teknologia Toteutusarkkitehtuurien yhteenveto J2EE-arkkitehtuuri Hajautetut monitasoiset sovellukset Sovelluskomponentit Web-asiakastaso Java-papu -komponenttiarkkitehtuuri Web-sovelluskomponentit Enterprise Java-pavut Istuntopavut Tietopavut EJB:n suorituskyky... 42

5 4 5 Java Servlet -arkkitehtuuri Servlettien elinkaari Servlettien konfigurointi Tapahtumakuuntelijat Virheiden hallinta Tietojen jakaminen Näkyvyysalueet Samanaikaisuuden hallinta HTTP-servletit Palvelupyyntö Palvelupyynnön parametrien käsittely Palvelupyynnön attribuuttien käsittely Palvelupyyntöön sisältyvän tiedon käsittely Vastaus Tulostusvirta MIME-tyyppi HTTP-vastausten otsikkotiedot Suodattimet Suodattimien luonti Servletin palvelupyynnön tai vastauksen muokkaus Web-sovellusten ja -resurssien väliset kutsut RequestDispatcher-olion luonti Sisällyttäminen Siirtäminen Servlettisäiliön käsittely Servlettisäiliön alustusparametrit Servlettisäiliön attribuuttien käsittely Lokitiedostoon kirjoittaminen Servlettisäiliönkuuntelija Tiedostojen lukeminen Asiakkaan tilan ylläpitäminen URL-uudelleenkirjoitus... 61

6 Lomakkeiden piilokentät Evästeet Istunto Istunnon attribuuttien käsittely Tietokannan käyttö JDBC-ajurit Ajurin lataaminen Tietokantayhteyden luonti DataSource-rajapinta Lause Valmisteltu lause Tulosjoukko Samanaikaisuuden hallinta tietokantojen kanssa Tietokantaresurssien sulkeminen Käyttäjätunnistus Käyttäjätunnusten ja roolien luonti (Tomcat) Käyttäjätunnistuksen määrittely servletteihin HTTP basic käyttäjätunnistus HTTP digest käyttäjätunnistus Lomakepohjainen käyttäjätunnistus Java servlettien parhaat ratkaisut Merkkijonon ja StringBuffer-luokan vertailua init-metodi välimuistina Istuntojen hallinta Asetustiedostojen käyttö Vakiomuuttujien määrittely omaan luokkaan Virheenjäljitysvihjeitä Tietokantaresurssien optimointi Lauseen ja valmistellun lauseen vertailua SQL-kyselyiden optimointi ResultSet-rajapinnan optimaalinen käyttö DatabaseMetaDatan raskaat metodit... 84

7 Yhteysallas JDBC-ODBC-sillan ja tietokantakohtaisen JDBC-ajurin vertailua Tietokantaresurssien kierrättäminen Yhteenveto Lähteet Liite: web.xml-tiedosto

8 7 1 Johdanto Web-sovellusten tarve verkkopalvelujen perustana kasvaa, sillä Internetin käytön ja laajakaistayhteyksien yleistyminen ovat parantaneet verkko-palvelujen saatavuutta ja niiden mahdollisuuksia. Vaikka Internet tuli suurin yleisön tietouteen 1990-luvun puolivälissä, vasta 2000-luvulla verkkopalvelujen mahdollisuuksia on opittu hyödyntämään oikein. Toisaalta verkkopalvelujen käytettävyyteen on vaikuttanut oleellisesti myös yhteysnopeuksien kasvaminen, kun modeemiyhteyksistä on siirrytty laajakaistayhteyksiin. Yritykset ja yhteisöt ovat kehittäneet verkkopalvelujaan vastaamaan markkinoinnista, asiakaspalvelusta sekä viestinnästä. Yhteistä verkkopalvelujen kehitykselle on vuoro-vaikutteisuuden lisääntyminen, jota staattisten sivujen avulla ei voida toteuttaa. Tästä syystä suurin osa uusista verkkopalveluprojekteista toteutetaan web-sovellusten avulla. [6; 18.] Internet ja World Wide Web ovat tuoneet perinteiseen sovellussuunnitteluun uusia ominaispiirteitä ja vaatimuksia, jotka on otettava huomioon web-sovelluksia suunniteltaessa. Nämä ominaispiirteet ja vaatimukset ovat syntyneet tarpeista kuten olemassa olleista ja olevista puutteista ja ongelmista. [1, s.9; 2, s ] Tässä insinööri-työssä selvitetään taustat web-sovellussuunnittelun ominaispiirteisiin ja vaatimuksiin vaikuttaneista ja vaikuttavista tekijöistä sekä esitellään web-sovellussuunnittelun vaatimukset. Web-sovellussuunnitteluun liittyy oleellisesti myös toteutus-arkkitehtuurin valinta. Web-sovellusten tekemiseen tarkoitettuja arkkiteh-tuureja on tarjolla useita ja ohjelmoija joutuu usein tekemään päätöksen käytettävästä arkkitehtuurista itse. Tässä työssä etsitään parasta web-sovellusten toteutusarkkitehtuuria. Tutkimus tehdään kirjallisuuden, teknisten tietojen sekä tehtyjen suorituskyky- ja skaalautuvuusvertailujen avulla siten, että kaikkien toteutusarkkitehtuurien soveltuvuutta vaatimuksiin arvioidaan lähteiden avulla kriittisesti. Toteutus-arkkitehtuurit pyritään myös kuvaamaan pintapuolisesti. Laajakaistayhteyksien yleistyminen on poistamassa sivun-latautumisesta johtuvan viiveen, joten tulevaisuudessa www-sivun vasteaika syntyy yksinomaan web-sovellusten vasteajasta eli sivun prosessointiin kuluvasta ajasta. Koska toteutusarkkitehtuurilla on suuri merkitys suorituskykyyn, valitaan suorituskyky tärkeimmäksi kriteeriksi parhainta toteutusarkkitehtuuria valittaessa. [6; 2, s , ] Lisäksi työssä selitetään valittu ratkaisuarkkitehtuuri perinpohjaisesti sekä esitellään valitun ratkaisuarkkitehtuurin suorituskykynäkökohtia parhaiden ratkaisujen muodossa. Parhaiden ratkaisujen vaikutuksia suorituskykyyn tutkitaan empiirisesti työssä toteuttavan web-sovelluksen avulla.

9 8 2 Internet ja verkkopalvelut Ajatus tietoverkosta syntyi 1950-luvun lopulla, kun Yhdysvalloissa viranomaiset alkoivat suunnitella kommunikointijärjestelmää, jonka toiminta ei lamaantuisi edes ydiniskun jälkeen. Tästä tavoitteesta syntyi ARPANET. Vuonna 1983 sotilaalliset palvelimet ja verkot erotettiin ARPANETista erilliseksi MILNET-verkoksi. Jäljelle jäi vain tiedeyhteisön muodostama ARPANET luvun lopulla verkkoon liittyi suuri joukko yliopistoja ja korkeakouluja. Näin syntyi NSFNET, joka on nykyisen Internetin runko. [7; 8.] Vuonna 1990 Tim Berners-Lee kehitti World Wide Web -standardin työskennellessään CERNissä (European Organization for Nuclear Research). World Wide Web eli Web on Internetissä toimiva hypertekstijärjestelmä. Hypertekstiä selataan selaimella, joka hakee web-sivuiksi kutsuttuja dokumentteja web-palvelimilta ja näyttää ne näytöllä. Hyperteksti sisältää linkkejä toisiin dokumentteihin. [9.] Vuotta aiemmin hän hahmotteli yhdessä Robert Caillaun kanssa vastinetta CERNin useille erilaisille dokumenteille, jolloin syntyi HTML eli Hyper Text Markup Language. Se on hypertekstin merkintäkieli, ja sillä kuvataan tekstin rakennetta, esimerkiksi mikä osa tekstistä on otsikkoa ja mikä leipätekstiä. Merkintä tehdään tekstin joukkoon kirjoitettavilla elementeillä eli tageilla. [10.] HTML:n rinnalle suunniteltiin yksinkertainen verkkoprotokolla HTTP eli Hyper Text Transfer Protocol. Se on kieli, jota selaimet ja webpalvelimet käyttävät tiedonsiirtoon. Protokolla perustuu siihen, että asiakasohjelma, joka yleensä on selain, ottaa yhteyden palvelimelle ja lähettää palvelupyynnön. Palvelin vastaa lähettämällä sopivan vastauksen, tavallisimmin HTML-sivun. [11.] 2.1 Staattiset sivut Staattiset eli muuttumattomat sivut perustuvat yksittäisiin ja sisällöltään valmiiksi muokattuihin sivuihin. Yleensä tiedostot ovat HTML-muotoisia. Staattiset sivut ovat nopein vaihtoehto Internetissä, sillä ne ovat jo olemassa, kun palvelupyyntö web-palvelimelle saapuu, ja näin ne voidaan lähettää vastauksena heti, kuten kuvassa 1 havaitaan. [12, s. 47.]

10 9 Kuva 1. Staattisen sivun palvelupyyntö- ja vastausprosessi HTML ei kuitenkaan ole ohjelmointikieli, vaan sen tarkoitus on kuvailla dokumentin sisällön rakennetta. Tästä syystä HTML:llä ei voida toteuttaa interaktiivisuutta eikä muunlaista toiminnallisuutta. Staattiset sivut näkyvätkin käyttäjälle aina sellaisina, kuin suunnittelija on ne tehnyt. [10; 13.] Aluksi, kun Internet ja web-sivut eli HTML-esitysmuoto tuli suuren yleisön tietouteen 1990-luvun puolivälissä, tehtiin web-sivut staattisina. Alussa sivujen tekijöinä kunnostautuivat opiskelijat, oppilaitokset, innokkaat yksityishenkilöt ja ensimmäisiä kokemuksiaan hakeneet yritykset. Aluksi web-sivut eivät olleet esitysvoimaisia. Vika ei kuitenkaan ollut HTML-kielessä, vaan käyttäjissä, sivujen tekijöissä ja infrastruktuurissa, joka ei ollut vielä valmis. Toisaalta kenelläkään ei ollut tietoa siitä, millaisia web-sivuja ihmiset haluaisivat nähdä. Kun käyttäjätkään eivät tienneet, mihin web-sivuja voitaisiin käyttää, he eivät osanneet vaatia palvelua, saati sitten käytettävyyttä. [1, s. 2; 15.] WWW-sivujen tekeminen ei ollut vaikeaa, sillä HTML-kielen pystyi oppimaan päivässä. WWW-sivut alkoivatkin yleistyä nopeasti, ja graafinen ulkoasu ja esitysmuoto kehittyivät, kun käyttäjiltä alettiin kerätä kokemuksia. Kun ensimmäiset web-sivut alkoivat kaivata tiedon päivittämistä, kohdattiin päivittämisen mukanaan tuomiin ongelmiin. WWW-palvelimella saattoi olla satoja tai tuhansia HTML-sivuja. Jos esimerkiksi jokin kaikkia sivuja yhdistävä tieto, kuten osoite tai yrityksen nimi vaihtui, uusi tieto täytyi muuttaa jokaiseen HTML-sivuun erikseen. Toisaalta myös yksittäisten sivujen sisällön päivittäminen oli työlästä, sillä kaikki tieto oli kirjoitettu HTML-tagien väliin. Uutuuden viehätyksessä tehtyjä web-sivuja ei oltu valmiita päivittämään. Tämä johtikin siihen, että Internet alkoi olla täynnä enemmän tai vähemmän vanhaa tietoa. Tämä vaivaa Webiä vieläkin, mutta huomattavasti vähemmässä määrin. Useissa tapauksissa uutta tietoa oli saatavilla, mutta

11 10 tieto sijaitsi taustajärjestelmissä, kuten tietokannassa, tekstitiedostossa tai jonkin spesifisen ohjelmiston tietojärjestelmässä. Tiedon saaminen verkkoon edellytti eräajoa taustajärjestelmästä, josta tieto kerättiin ja siirrettiin käsin web-sivuille. Tämä tapa ei ollut kovinkaan helppotöinen, sillä se edellytti WWW-julkaisemisen ja taustajärjestelmän tuntemusta. [1, s. 2; 12, s. 48; 13.] Interaktiivinen kommunikointi käyttäjän ja web-sivun tarjoajan välillä toteutettiin aluksi sähköpostin välityksellä. Käyttäjältä saadut tiedot käsiteltiin myös käsin. Tosin näihin sähköpostiosoitteisiin ei kovinkaan usein saapunut vastauksia, sillä yleisesti uskottiin, ettei yleisiä sähköpostilaatikoita lueta. [1, s. 2.] Verkkopalveluiden ongelmat staattisilla sivuilla esiintyvät rajapinnassa käyttäjän kanssa sekä rajapinnassa yrityksen liiketoimintaympäristöön. Loppukäyttäjät eivät saa kaikkea hyötyä irti, eikä todellista vuorovaikutusta käyttäjän ja palveluntarjoajan välillä pääse syntymään. Toisaalta resursseja tuhlaantuu, kun web-sivuja joudutaan päivittämään käsin taustajärjestelmistä. [1, s. 2.] Toisaalta staattiset sivut ovat riittävä vaihtoehto, kun sivujen sisältöä ei tarvitse päivittää usein eikä vuorovaikutusta tai interaktiivisuutta käyttäjän välillä tarvita. Staattiset sivut ovat nopein vaihtoehto, kuten alussa todettiin. Jos staattisia sivuja tarkastellaan yrityksen näkökulmasta, ne ovat aloituskustannuksiltaan halvin vaihtoehto. [12, s. 43; 15.] 2.2 Dynaamiset sivut Dynaamiset eli muuttuvat sivut eivät ole sellaisenaan palvelimella, vaan palvelinohjelmisto ottaa vastaan palvelupyynnön, prosessoi palvelunpyynnössä saapuvien parametrien, olemassa olevien attribuuttien ja/tai sovelluslogiikan mukaisesti ja palauttaa tämän prosessin tuloksen mukaisen vastauksen, kuten kuvassa 2 havaitaan. Tavallisesti vastauksena lähetetään prosessissa generoitu HTML-sivu, joiden sisällöstä osa on tietoa, joka on luettu taustajärjestelmästä. Esimerkiksi käyttäjän tekemät valinnat vaikuttavat vastauksena saapuvan sivun sisältöön. [12, s ; 16, s. 11.]

12 11 Kuva 2. Dynaamisen sivun palvelupyyntö- ja vastausprosessi Dynaamisia sivuja tai oikeastaan palvelinsovelluksia käytettäessä web-sivuille saadaan aikaan toiminnallisuutta ja pystytään luomaan vuorovaikutus käyttäjän ja verkkopalvelun välille. web-selaimen välityksellä on nykyään mahdollista lähettää ja lukea sähköpostia, maksaa pankkilaskuja, tehdä tilisiirtoja, ostaa viikonlopun ruoat ja juomat, tilata elokuvaliput mieleisille paikoille elokuvateatteriin ja tehdä lukuisia muita asioita. Yksikään näistä toiminnallisuuksista ei ole toteuttavissa ilman palvelinsovelluksia. [1, s. 17.] Dynaamiset sivut rakennetaan yleensä siten, että aluksi luodaan sapluuna, jonka ympärille palvelinsovellus rakentaa vastauksena lähetettävän sivun. Koska sivun ulkoasu on yhdessä tai korkeitaan muutamassa sapluunassa, sivun rakennetta tai siinä olevia vakio-osioita voidaan muokata helposti. Toisaalta sapluunat mahdollistavat verkkopalvelun ulkoasun uudelleensuunnittelun ilman, että palvelinsovellukseen tai tietoon tarvitsee koskea. Vertaamalla aiemmin esitettyyn ongelmaan, jossa yrityksen nimi muuttuu, voidaan yrityksen nimen muutos tehdä yhteen tai muutamaan sapluunaan. Tämä on huomattavasti tehokkaampaa kuin muutoksen tekeminen sataan tai tuhanteen dokumenttiin. [12, s. 49; 16, s ] Varsinaisen sisällön ylläpito ja muokkaaminen tapahtuu suoraan yrityksen liiketoimintaympäristössä eli taustajärjestelmissä. Jos taustajärjestelmää ei ole tai sitä ei voida käyttää, verkkosovelluksiin voidaan lisätä helppokäyttöinen ja yksinkertainen ylläpitoliittymä, jonka avulla asiakas päivittää sisällön itse. Asiakas voi halutessaan päivittää sivuja minkä tahansa WWW-yhteyden kautta. Toisaalta se mahdollistaa myös päivityksen siirtämisen yrityksen eri osastoille kuten myynnille, markkinoinnille ja niin edelleen. Oikein toteutettuna tietojen päivitys tehdään yhteen paikkaan, taustajärjestelmään tai ylläpitoliittymän avulla, ja tieto on päivittynyt kaikkialle sivustoilla. Tämä puolestaan karsii ylimääräisen päivitystyön ja minimoi resurssien käytön web-sivujen päivityksille. [16, s ; 17.]

13 12 Dynaamiset sivut häviävät staattisille sivuille nopeuden ja yrityksen näkökulmasta aloituskustannuksen osalta. Nopeudessa puhutaan optimaalisten palvelinsovellusten kohdalla millisekunneista. Dynaamiset sivut tulevat myös pidemmällä aikavälillä staattisia edullisemmaksi vaihtoehdoksi, kun säästöjä kertyy päivittämiseen kuluvissa kustannuksissa. Se tarjoaa myös staattisia sivuja enemmän lisäarvoa sekä yritykselle että yrityksen asiakkaille. Dynaamiset sivut ovatkin parhaimmillaan, kun halutaan vuorovaikutteisuutta ja toiminnallisuutta, materiaalin toimittajia on useita ja käsitellään päivittäin muuttuvaa aineistoa. Hyvät palvelinsovellukset keräävät tietoa jakamisen ohella. Tietoa voidaan kerätä esimerkiksi siitä, mistä verkkopalvelun käyttäjät ovat olleet kiinnostuneita, kuinka monta kävijää verkkopalvelussa on ollut ja niin edelleen. Näiden tietojen avulla yritys saa arvokasta tietoa asiakaskunnastaan, palvelua pystytään suuntaamaan yksilöllisemmin ja tarjoamaan nykyisille asiakkaille lisäarvoa, kanta-asiakkuutta sekä kohdennettua palvelua. Verkkosovellukset mahdollistavat hyvinkin innovatiivisia ratkaisuja sisältäviä verkkopalveluja. [12, s. 48; 15; 18, s. 16, ] 2.3 Käytettävyys Tutkimukset verkkopalvelujen käytettävyydestä ovat osoittaneet, että käyttäjät ovat kiinnostuneita sisällöstä. Kun käyttäjä saapuu uudelle sivulle, hän tarkastelee ensimmäiseksi sivun suurinta sisältöaluetta ja yrittää otsikoita ja muita viitteitä silmäilemällä tehdä johtopäätöksiä sivun sisällöstä. Jos käyttäjä päätyy johtopäätöksen, ettei sisältö kiinnosta tai kosketa häntä, hän poistuu verkkopalvelusta etsimään sivuja, jotka vastaavat hänen tarpeitaan. Koska käyttäjä on verkossa sisällön vuoksi, hän pyrkii löytämään etsimänsä sisällön vaivattomasti. Palvelun käytettävyyteen vaikuttavatkin eniten sisällön laatu ja se, kuinka helposti käyttäjä löytää etsimänsä. Verkkopalvelu voi pitää sisällään kaiken tiedon, mitä maailmassa on, mutta käyttäjä, joka ei löydä etsimäänsä, poistuu palvelusta. [2, s ; 4, s , ] Tuotantoprosessin laatu ei ole yhtä tärkeässä asemassa Webissä kuin perinteisissä medioissa kuten aikakauslehdissä. Käyttäjät arvostavat hyvin tehtyä tekstiä ja kauniita kuvia, mutta ne eivät ole laadun tae. Sisältöä punnitseva käyttäjä yleensä miettiikin sitä, mitä hyötyä sisällöstä on hänelle ja saako hän sivulta vastauksia kysymyksiinsä. Nykyään, toisin kuin 1990-luvun puolivälissä, käyttäjät ovat erittäin tavoitehakuisia, kärsimättömiä ja palvelua vaativia, joten verkkopalvelun suunnittelussa tulee korostaa sitä, että käyttäjä saa etsimänsä vastaukset nopeasti ja vaivattomasti. Toisaalta sisällön on oltava käyttäjälle hyödyllistä. [2, s ; 4, s , ]

14 13 Vasteaika Käytettävyyden pioneeri Jacob Nielsen on tutkinut käytettävyyttä vuodesta 1994 lähtien, ja jokaisessa hänen tekemässään tutkimuksessa esiin on noussut sama asia: käyttäjät haluavat sivujen latautuvan nopeammin. Aluksi, Nielsen ajatteli, että käyttäjät odottavat mielellään, jos sivujen ulkoasu on odotusten arvoinen. Myöhemmin hän on muuttanut käsityksiään tekemiensä tutkimusten perusteella ja hänen mielestään web-sivujen suunnittelussa tärkein kriteeri on nopea vasteaika. [2, s. 42.] Tätä väitettä tukevat myös monet muut käytettävyyttä ja hypertekstiä koskevat tutkimukset. On osoittautunut, että sivulta toiselle siirryttäessä on vasteajan oltava alle sekunti, jotta käyttäjä tuntisi liikkuvansa vapaasti. Jacob Nielsen esittää kirjassaan esimerkkinä IBM:n (International Business Machines) 70- ja 80-luvulla tekemiä tutkimuksia, joissa ilmeni, että keskuskoneiden käyttäjät toimivat tuottavammin, kun aika näppäimen painamisesta halutun ruudun esiin saamiseen oli alle yksi sekunti. [2, s. 42; 19.] Vasteaikaa koskeva ohje vuodelta 1968 ei ole muuttunut vielä tänäkään päivänä. Kolmekohtaisen ohjeen on luonut Robert B. Miller, joka piti aiheesta esityksen Fall Joint Computer Conferencessa [5]: 1. Toiminnon tulee tapahtua sekunnin kymmenyksessä (0,1 s), mikäli käyttäjän on tarkoitus tuntea, että järjestelmä reagoi välittömästi eikä tulosten näyttämisen lisäksi tarvita muuta palautetta. Tätä aikarajaa tulisi tavoitella. 2. Käyttäjän ajatus ei katkea, jos tauon pituus on alle yksi sekunti (1 s), vaikka käyttäjä viiveen huomaakin. Erillistä palautetta suorituksen etenemisestä (tiimalasiefekti) ei tarvita, jos viiveen pituus on 0,1 1 sekuntia; tosin käyttäjästä ei enää tunnu siltä, että hän käsittelisi dataa suoraan. Jos uusi sivu lataantuu sekunnissa, viive ei häiritse käyttötuntumaa. 3. Käyttäjän huomio säilyy vuorovaikutustilanteessa, jos yhden toiminnon kesto on alle 10 sekuntia (10 s). Mikäli viive on tätä pidempi, käyttäjä kiinnittää huomionsa johonkin muuhun toimeen, kunnes tietokone on suorittanut toimintonsa. Verkkopalveluissa uuden sivun latautuminen noin kymmenessä sekunnissa on käyttäjien mielestä ärsyttävän hidasta, mutta siedettävissä. Dynaamisten sivujen suosion kasvu, sähköinen kaupankäynti ja käyttäjän mahdollisuus muokata sivun esitystapaa ja sisältöä haluamakseen aiheuttaa sen, että sivun luonti palvelupyynnön saapuessa edellyttää palvelimelta usein laskutoimituksia. Tämä puolestaan johtaa

15 14 siihen, että viive sivua ladattaessa koostuu latausajan lisäksi myös sivun prosessointiajasta. Sivun prosessointiaikaan puolestaan vaikuttavat palvelimen nopeus sekä web-sovelluksen suorituskykyisyys. Yleensä sivun esittämiseksi täytyy web-sovelluksen muodostaa yhteys tietokantaan, joka puolestaan on web-sovellusten hitain toiminto ja näin ollen sovelluksen nopeuden kannalta pullonkaula. Tämä hidastaa latausaikaa entisestään. Käyttäjää selitykset latausajan hitaudesta eivät kiinnosta, vaan sivu on yksinkertaisesti liian hidas. Hitaan vasteajan johdosta käyttäjien määrä vähenee, kun sivu osoittautuu epäluotettavaksi, ja lopulta he siirtyvät kilpailijoiden verkkopalveluihin. Käyttäjäkato on kuitenkin mahdollista välttää investoimalla nopeisiin palvelimiin sekä hyvin suunniteltuihin ja suorituskykyisiin web-sovelluksiin. [2, s ] 2.4 WWW-palvelut WWW-sivujen mahdollisuudet ovat moninaiset. Verkkopalvelua voidaan esimerkiksi yrityksissä käyttää tuotetiedon välittämiseen, ostopäätösten ohjaamiseen, tuote- ja yritysmielikuvan luomiseen, asiakaspalveluun, asiakkaiden vuorovaikutuksen mahdollistamiseen, yksilöllisen asiakas-suhteen luomiseen ja/tai ryhmäviestintään. Yhteisöt ja yksityiset henkilöt voivat käyttää web-sivujaan tiedon jakamiseen. Verkkopalvelut ovat usein helpommin ja nopeimmin käyttäjän saatavilla kuin painettu materiaali, henkilökunta tai myymälä/konttori. Verkkopalvelua voidaan käyttää vuorokaudenajasta ja paikasta riippumatta. [18, s. 5 7.] Verkkopalvelu voidaan tuottaa myös jollekin potentiaaliselle asiakaskunnalle tai yhteisölle. Asiakaskohtaisessa palvelussa voidaan näkymät ja sisältö räätälöidä asiakkaan tarpeiden ja/tai asiakassuhteen mukaan. Tämä voi käytännössä tarkoittaa omia tuotevalikoimia, asiakaspalvelutoimintoja tai hinnoittelua. Yritysten välisessä kaupassa suurille asiakkaille voidaan rakentaa täysin oma WWW-palvelukonsepti, jota koko asiakasyrityksen henkilökunta käyttää. Ideana on tarjota henkilökohtaisempaa ja asiakassuhdetta syventävämpää palvelua. [18, s. 5 7.] Internetin hyödyt voidaan Tietoyhteiskunnan kehittämiskeskuksen tekemän Sähköisen kaupankäynnin aapisen mukaan jakaa kolmeen ryhmään [18, s. 6]: Kustannusten alentaminen Kustannuksia voidaan usein säästää sillä, että esitteitä ja käyttöohjeita toimitetaan verkon kautta painatuksen ja postituksen asemasta. Tilausten ja käsittelyn vaatimaa työtä voi vähentää, jos asiakas voi tehdä tilauksen verkon kautta.

16 15 Asiakaspalvelun parantaminen Verkossa sijaitseva palvelu on asiakkaan käytettävissä silloin, kun hän haluaa. Lisäksi yrityksen on helpompaa pitää yllä esimerkiksi tuotetietoja tai tuotteen saatavuustietoja yhdessä sähköisessä paikassa. Tietokantoja hyödyntämällä voidaan lisätä asiakastuntemusta ja palvella asiakasta yksilöllisemmin. Asiakkaalle voidaan tarjota myös mahdollisuus lähettää palautetta helposti verkon kautta. Markkinoiden laajentaminen Verkon kautta voi edullisesti saavuttaa uusia asiakasryhmiä ja maan-tieteellisiä alueita sekä laajentaa tuotevalikoimaa. Verkossa olevan tiedon perusteella asiakkaat voivat valmistella ostopäätöksiään. 2.5 Verkkopalvelujen tulevaisuus Laajakaistaiset Internet-liittymät yleistyvät nopealla vauhdilla. Liikenne- ja viestintäministeriö selvitytti laajakaistaliittymien lukumäärän Tilasto-keskuksen kuluttajabarometrin yhteydessä [6]. Selvityksessä ilmenee, että elokuussa 2004 laajakaistayhteys oli kotitaloudessa. Liikenne- ja viestintäministeriö arvioi, että kaikkiaan laajakaistaliittymiä on nyt yritykset mukaan lukien ainakin Selvityksessä ilmenee myös, että yli kotitaloutta suunnittelee hankkivansa laajakaistayhteyden vuoden 2004 loppuun mennessä. Sähköisen kaupankäynnin mahdollisuudet yritysten toiminnan tehostamiseen tulevat edelleen paranemaan. Tätä väitettä tukee Tilastokeskuksen tammi-huhtikuussa 2004 tekemä selvitys [20]. Siinä ilmenee, että verkkokauppa kasvaa vauhdilla: kerättyjen tietojen mukaan noin 70 prosenttia vuotiaista suomalaisista oli käyttänyt Internetiä viimeksi kuluneiden kolmen kuukauden aikana. Noin 15 prosenttia eli yli henkeä oli tilannut jotakin verkon kautta yksityiskäyttöön. Tuotetiedon etsijöiden määrä oli syksystä 2003 kasvanut nopeammin kuin Internetin käyttäjien määrä, sillä lähes 2,3 miljoona henkeä eli noin 59 prosenttia kaikista vuotiaista suomalaisista ja lähes 84 prosenttia Internetiä käyttäneistä oli hakenut tuote- ja palvelutietoja. Mikäli verkkokaupassa myynti pysyisi kevään 2004 tasolla, olisi vuoden 2004 lopulla kaupan arvo noin 2,1 miljardia euroa. Tämä suhdanne on näkynyt myös ulkomaisissa verkkokaupoissa kuten Amazonissa [21] ja Ebayssa [22] hyvänä tuloskehityksenä.

17 16 3 WWW-sovellusten arkkitehtuurit 3.1 Web-sovellusten vaatimukset Internet ja web-sivut ovat tuoneet sovellussuunnitteluun uusia ominaispiirteitä ja vaatimuksia, jotka on otettava huomioon verkkosovellusta suunniteltaessa. [1, s. 9.] Käyttäjämäärät verkkopalveluissa saattavat olla aluksi pieniä, mutta pian ne saattavat muuttua myös suuriksi. Käyttäjämäärän vaihtelut kuuluvat verkkosovellusten luonteeseen ja siksi web-sovellusten pitää pystyä sopeutumaan niihin ilman sovelluksen uudelleen suunnittelua. Myös vasteaika on syytä pitää mielessä, kun web-sovellusta suunnitellaan, sillä suorituskyky on web-sovellusten tärkein vaatimus. Tietoturvan merkitys on kasvanut, koska liiketoimintaympäristöt ovat yhä tiukemmin kiinni verkossa ja yleensä verkkopalvelussa. Sähköisten kauppojen ja yritysten tietojärjestelmien on oltava saatavilla kellon ympäri, sillä suuret katkokset vaikuttavat liiketoimintaan monella eri tavalla. Järjestelmän on oltava luotettava, sillä epästabiili ympäristö vaikuttaa palvelun saatavuuteen sekä ylläpidon kustannuksiin. Järjestelmän on oltava myös helposti hallittavissa eikä muutosten tekeminen saa olla vaikeaa. [1, s. 9 11; 2, s ; 3, s.1 2.] Yhteenvetona voidaan listata edellä esitellyt vaatimukset websovelluksille: Skaalautuvuus (vaihteleviin käyttäjämääriin sopeutuminen) Suorituskyky Tietoturva Saatavuus Luotettavuus Hallittavuus. 3.2 CGI-arkkitehtuuri Alun perin CGI (Common Gateway Interface) keksittiin NCSA:n (National Center for Supercomputing Applications) web-palvelimeen (NCSA HTTPdaemon) vuonna CGI on alustasta riippumaton rajapinta tai standardi, joka määrittelee tavan, jolla web-palvelin ohjaa tulevan palvelupyynnön ulkopuoliselle sovellukselle, vastaanottaa ohjelman tuloksen ja lähettää sen vastauksena palvelupyyntöön. [23; 24.]

18 17 CGI oli ensimmäisiä käyttökelpoisia ja yleisesti hyödynnettyjä tekniikoita luoda dynaamisia web-sivuja. CGI avasi uuden maailman web-sivujen ja -sovellusten alueella, ja hyvin nopeasti CGI:n käyttö yleistyi ja useat WWW-palvelinsovellukset alkoivat tehdä CGI:stä itse asiassa standardia palvelimiin. [1, s.2 3.] CGI-sovelluksia voidaan kirjoittaa miltei jokaisella ohjelmointikielellä kuten C:llä, C++:lla, Pythonilla, Tcl/Tk:lla tai vaikkapa AppleScriptillä. Perlistä on kuitenkin tullut merkittävin ja yleisin vaihtoehto ja sen vahvuuksia ovat tekstijonojen ja tiedostojen käsittely. Kirjoitettaessa CGI-sovelluksia antaa Perl myös jonkinlaisen alustasta riippumattomuuden. [24; 25.] Kaikesta joustavuudestaan huolimatta CGI:ssä on ollut ja on edelleenkin omat murheensa. On mielenkiintoista huomata, että CGI-sovellusten kyvykkyys luoda dynaamisia sivuja onkin sivutuote tarkoitetusta päämäärästä. CGI:n tarkoitus oli vain määritellä metodit, joiden avulla tietopalvelin voisi keskustella ulkoisten sovellusten kanssa. Tämä osaltaan selittääkin CGI:n suurinta ongelma: sillä on luultavasti huonoin elinkaari mitä kuvitella saattaa. Kun palvelin saa palvelupyynnön, joka on matkalla CGI-sovellukselle, täytyy palvelimen ensin luoda uusi prosessi ulkoisesta sovelluksesta välittääkseen palvelupyynnön, ympäristömuuttujat, syötteet sekä kaiken muun mitä se tarvitsee vastauksen muodostamiseen. Kuvassa 3 havainnollistetaan CGI-sovellusten elinkaarta. Prosessin luonti jokaista palvelupyyntöä kohden vaatii aikaa ja merkittävästi resursseja. Tämä puolestaan kasvattaa vasteaikaa ja rajoittaa palvelupyyntöjen lukumäärä, jota palvelin pystyy kerrallaan palvelemaan. Toinen CGI:n ongelma, joka usein jätetään huomioimatta, on se, että CGI-sovellus ei pysty olemaan vuorovaikutuksessa palvelimeen eikä käyttämään palvelinta hyödykseen sen jälkeen, kun suoritus alkaa. Tämä johtuu siitä, että sovellus suoritetaan erillisessä prosessissa. Esimerkiksi CGI-sovellus ei voi kirjoittaa palvelimen lokitiedostoon. Myös suositulla Perlillä on suorituskykyongelmia. Perl on tulkattava ohjelmointikieli, jolloin jokaisella suorituskerralla ohjelma käännetään uudelleen. Tämä edellyttää jokaista palvelupyyntöä kohden käynnistämään erillisen Perl-tulkin, jolloin se vaatii vielä enemmän aikaa ja merkittävästi enemmän resursseja. [24, 25.] Kuva 3. CGI-sovellusten elinkaari [25]

19 18 CGI: n kolmas ongelma on turvallisuus, joka on miltei olematon ja jää aina ohjelmoijan vastuulle. Sovellukset suoritetaan web-palvelimessa ylläpitäjän asettamilla oikeuksilla. Minimaalisillakin oikeuksilla CGIsovellukset pääsevät käsiksi kaikkiin web-palvelimen tiedostoihin, joita ei ole erikseen suojattu. Huonosti suunniteltu CGI-sovellus puolestaan välittää käyttäjänsyötteen suoraan komentoriville, jolloin parametrissa voidaan välittää rivierottimen avulla käskyjä kuten rm / -f -d. Käsky poistaa Unix-web-palvelimessa juuresta (/) alkaen kaiken. Toisaalta CGI-rajapinnan lähdekoodista puolestaan löytyy puskuriylivuoto-haavoittuvuus, joka niin ikään mahdollistaa myös käskyjen välittämisen komentoriville. CGI-sovelluksia suunniteltaessa onkin huomioitava tarkasti, ettei puskuriylivuotoja pääse tapahtumaan ja ettei käyttäjän lähettämää syötettä käytetä ilman suodattamista tai tarkistuksia. CGIsovelluksia voidaan joissain web-palvelimissa kuten Apachessa rajata suoritettavaksi vain, jos palvelupyyntö tulee tietystä IP-osoitteesta tai -avaruudesta. [66; 67] CGI-sovellusten saatavuus ja luotettavuus ovat riippuvaisia valitusta web-palvelimesta, käyttöjärjestelmästä sekä ohjelmointikielestä. Nykyään kaikki web-palvelimet tukevat CGI-rajapintaa ja useita käyttöjärjestelmiä. Luotettavimpana ja saatavuudeltaan parhaimpana pidetään Unix-käyttöjärjestelmää ja Apache-palvelinta. Tätä väitettä tukee myös Netcraftin pisimpään toimineiden web-palvelimien tilasto [68], jossa viidestäkymmenestä (50) lukuun ottamatta kolmea toimivat Unixilla ja Apachella. Toisaalta saatavuuteen ja luotettavuuteen vaikuttaa myös ohjelmointikieli. Tulkattavat CGI-sovellukset rasittavat palvelinta enemmän kuin valmiiksi käännetyt sovellukset ja siksi niillä on taipumuksia käyttäjämäärän kasvaessa tukkia tai kaataa web-palvelin. Ohjelmointikielen valinta vaikuttaa myös hallittavuuteen. C-kieltä pidetään syntaksiltaan helppona ja loogisena, mutta se pitää kääntää ennen käyttöönottoa. C-kielen vastakohtaa Perliä puolestaan pidetään monimutkaisena ja sekavana, mutta sitä ei tarvitse kääntää. Kaikkien CGI-sovellusten yhteinen piirre on HTML:n tai tulosten kirjoittaminen ohjelmakoodin tulostuksissa, jolloin sovelluksen hallittavuus edellyttää valitun ohjelmointikielen jonkinlaista hallintaa, joka puolestaan rajoittaa hallittavuutta. Yhteenvetona taulukossa 1 esitetään CGI-arkkitehtuurin soveltuvuus web-sovellussuunnittelun vaatimuksiin.

20 19 Taulukko 1. CGI-arkkitehtuurin soveltuvuus vaatimuksiin Vaatimukset Skaalautuvuus Suorituskyky Tietoturva Saatavuus Luotettavuus Hallittavuus CGI Heikko Heikko Heikko Tyydyttävä Tyydyttävä Tyydyttävä 3.3 FastCGI-arkkitehtuuri Yritys nimeltä Open Market on kehittänyt vaihtoehdon CGI standardille nimeltään FastCGI. Suurimmaksi osaksi se toimii kuin tavallinen CGI, mutta merkittävä ero syntyy siitä, että FastCGI luo yhden pysyvän prosessin jokaista FastCGI-sovellusta kohden, kuten kuvassa 4 havaitaan. Tämä vähentää tarvetta luoda prosesseja ja näin ollen parantaa palvelimen tehokkuutta. Tämä puolestaan laskee vasteaikaa. FastCGI onkin askel oikeaan suuntaan, mutta sillä on ongelmia palvelukyvyssä kuten perinteisellä CGI:kin. FastCGI-sovellus voi palvella vain yhtä palvelupyyntöä kerrallaan. Kun FastCGI-sovellus suorittaa palvelupyyntöä, täytyy sen varastoida tulevat palvelupyynnöt jokaista prosessia (FastCGI-sovellusta) kohden. Perliä käytettäessä tämä saattaa tarkoittaa sitä, että jokaisella prosessilla on oma Perl-tulkkinsa, jolloin prosessien määrä taas kasvaa. Muuten FastCGI:n tietoturvaan, saatavuuteen, luotettavuuteen ja hallittavuuteen vaikuttavat samat tekijät kuin CGI:tä käytettäessä. [25; 26; 67.] Kuva 4. FastCGI-sovellusten elinkaari [25]

Visual Basic -sovelluskehitin Juha Vitikka

Visual Basic -sovelluskehitin Juha Vitikka Visual Basic -sovelluskehitin Helsinki 30.10.2000 Seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Visual Basic sovelluskehitin Seminaari: Ohjelmistotuotantovälineet Tietojenkäsittelytieteen

Lisätiedot

WWW-sivut HTML-kielellä esitettyä hypertekstiaineistoa

WWW-sivut HTML-kielellä esitettyä hypertekstiaineistoa WWW ja tietokannat WWW-sivut HTML-kielellä esitettyä hypertekstiaineistoa tekstiä, kuvia, hyperlinkkejä Staattiset sivut kirjoitettu kerran, muuttaminen käsin ongelmana pysyminen ajantasalla Ylläpito hankalaa,

Lisätiedot

Järjestelmäarkkitehtuuri (TK081702)

Järjestelmäarkkitehtuuri (TK081702) Järjestelmäarkkitehtuuri (TK081702) yleistyvät verkkopalveluissa Youtube Google... Avaavat pääsyn verkkopalvelun sisältöön. Rajapintojen tarjoamia tietolähteitä yhdistelemällä luodaan uusia palveluja,

Lisätiedot

3 Verkkopalveluarkkitehtuuri

3 Verkkopalveluarkkitehtuuri 3 Verkkopalveluarkkitehtuuri Verkkopalvelun arkkitehtuuri perustuu yleisesti asiakas-palvelin -malliin Tietokantapohjaisessa (verkko)palvelussa asiakas-palvelin -malli toimii seuraavasti: 1. Käyttäjä käyttää

Lisätiedot

Liite 1: KualiKSB skenaariot ja PoC tulokset. 1. Palvelun kehittäjän näkökulma. KualiKSB. Sivu 1. Tilanne Vaatimus Ongelma jos vaatimus ei toteudu

Liite 1: KualiKSB skenaariot ja PoC tulokset. 1. Palvelun kehittäjän näkökulma. KualiKSB. Sivu 1. Tilanne Vaatimus Ongelma jos vaatimus ei toteudu Liite 1: skenaariot ja PoC tulokset 1. Palvelun kehittäjän näkökulma Tilanne Vaatimus Ongelma jos vaatimus ei toteudu Palvelun uusi versio on Palveluiden kehittäminen voitava asentaa tuotantoon vaikeutuu

Lisätiedot

Järjestelmäarkkitehtuuri (TK081702) Järjestelmäarkkitehtuuri. Järjestelmäarkkitehtuuri

Järjestelmäarkkitehtuuri (TK081702) Järjestelmäarkkitehtuuri. Järjestelmäarkkitehtuuri Järjestelmäarkkitehtuuri (TK081702) ja Järjestelmäarkkitehtuuri Sovellukset ovat olemassa Järjestelmien uudistaminen vie yleensä arvioitua enemmän resursseja ja kestää arvioitua kauemmin Migration (Migraatio

Lisätiedot

WWW-ohjelmoinnin kokonaisuus. WWW-OHJELMOINTI 1 Merkkauskielet. Merkkauskielten idea. Merkkauskielet (markup languages) Merkkauskielten merkitys

WWW-ohjelmoinnin kokonaisuus. WWW-OHJELMOINTI 1 Merkkauskielet. Merkkauskielten idea. Merkkauskielet (markup languages) Merkkauskielten merkitys WWW-OHJELMOINTI 1 WWW-ohjelmoinnin kokonaisuus SGML, XML, HTML WWW-selaimen sovellusohjelmointi WWW-palvelimen sovellusohjelmointi Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto 26.10.2000

Lisätiedot

Valppaan asennus- ja käyttöohje

Valppaan asennus- ja käyttöohje Versio Päiväys Muokkaaja Kuvaus 0.9 16.2.2006 Tuukka Laakso Korjattu versio 0.1 Antti Kettunen Alustava versio Sisällysluettelo 1 Johdanto...2 2 Valppaan asennus...3 2.1 Valppaan kääntäminen...3 2.2 Valmiiksi

Lisätiedot

Uutisjärjestelmä. Vaatimusmäärittely. Web-palvelujen kehittäminen. Versio 1.3

Uutisjärjestelmä. Vaatimusmäärittely. Web-palvelujen kehittäminen. Versio 1.3 Uutisjärjestelmä Vaatimusmäärittely Versio 1.3 Sisällys 1 Muutoshistoria... 4 2 Viitteet... 4 3 Sanasto... 4 3.1 Lyhenteet... 4 3.2 Määritelmät... 4 4 Johdanto...5 4.1 Järjestelmän yleiskuvaus... 5 4.2

Lisätiedot

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö Tekijät: Eemeli Honkonen Joni Metsälä Työ palautettu: SISÄLLYSLUETTELO: 1 SEMINAARITYÖN KUVAUS... 3 2 TIETOKANTA... 3 2.1 MITÄ TIETOKANNAT SITTEN OVAT?... 3

Lisätiedot

Uutta Remote Support Platform 3.0 -versiossa

Uutta Remote Support Platform 3.0 -versiossa Uutta Remote Support Platform for SAP Business One Asiakirjaversio: 1.0 2012-10-08 Kaikki maat Typografiset merkintätavat Kirjasintyyli Esimerkki Näytöstä lainatut sanat tai merkit. Näitä ovat kenttien

Lisätiedot

www.solita.fi solita@solita.fi

www.solita.fi solita@solita.fi www.solita.fi solita@solita.fi JAVA-SOVELLUSTEN RAKENTAMINEN INTEGROITUUN YMPÄRISTÖÖN Jarno Peltoniemi Solita Oy 10.5.2005 Aiheet Johdanto Portaalit, portletit Oracle Portal Java-sovelluksen rakentaminen

Lisätiedot

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14 Arkkitehtuurikuvaus Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy Ryhmä 14 Muutoshistoria Versio Pvm Päivittäjä Muutos 1.0 19.10.2007 Suanto 0.3 18.10.2007 Matti Eerola 0.2 17.10.2007

Lisätiedot

.NET ajoympäristö. Juha Järvensivu 2007

.NET ajoympäristö. Juha Järvensivu 2007 .NET ajoympäristö Juha Järvensivu juha.jarvensivu@tut.fi 2007 Käännösprosessi C# lähdekoodi C# kääntäjä CILtavukoodi JITkäännös Ajettava natiivikoodi Kehitysympäristössä ohjelmoijan toimesta Ajonaikana.NET

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2009 1 / 28 Puhelinluettelo, koodi def lue_puhelinnumerot(): print "Anna lisattavat nimet ja numerot." print

Lisätiedot

Julkaisuarkistojen käyttötilastot: Mitä tilastoidaan ja miksi?

Julkaisuarkistojen käyttötilastot: Mitä tilastoidaan ja miksi? Julkaisuarkistojen käyttötilastot: Mitä tilastoidaan ja miksi? DSpace-käyttäjäryhmän tilastoseminaari Kansalliskirjaston auditoria, 3.11.2009 Jyrki Ilva (jyrki.ilva@helsinki.fi) Miksi verkkopalveluiden

Lisätiedot

XML prosessori. XML prosessointi. XML:n kirjoittaminen. Validoiva jäsennin. Tapahtumaohjattu käsittely. Tapahtumaohjattu käsittely.

XML prosessori. XML prosessointi. XML:n kirjoittaminen. Validoiva jäsennin. Tapahtumaohjattu käsittely. Tapahtumaohjattu käsittely. XML prosessointi Miten XML dokumentteja luetaan ja kirjoitetaan XML prosessori lukee ja välittää XML dokumentin sovellukselle. Se sisältää entieettikäsittelijän (mahdollisesti) XML jäsentimen Sovellus

Lisätiedot

Test-Driven Development

Test-Driven Development Test-Driven Development Ohjelmistotuotanto syksy 2006 Jyväskylän yliopisto Test-Driven Development Testilähtöinen ohjelmistojen kehitystapa. Tehdään ensin testi, sitten vasta koodi. Tarkoituksena ei ole

Lisätiedot

Yhteisöllinen tapa työskennellä

Yhteisöllinen tapa työskennellä Yhteisöllinen tapa työskennellä Pilvipalvelu mahdollistaa uudenlaisten työtapojen täysipainoisen hyödyntämisen yrityksissä Digitalisoituminen ei ainoastaan muuta tapaamme työskennellä. Se muuttaa meitä

Lisätiedot

Verkkosisällön saavutettavuusohjeet 2.0: hyviä ohjeita monimuotoisen sisällön suunnitteluun ja arviointiin

Verkkosisällön saavutettavuusohjeet 2.0: hyviä ohjeita monimuotoisen sisällön suunnitteluun ja arviointiin Verkkosisällön saavutettavuusohjeet 2.0: hyviä ohjeita monimuotoisen sisällön suunnitteluun ja arviointiin Ossi Nykänen Tampereen teknillinen yliopisto, Hypermedialaboratorio, W3C Suomen toimisto Terveyden

Lisätiedot

4. Lausekielinen ohjelmointi 4.1

4. Lausekielinen ohjelmointi 4.1 4. Lausekielinen ohjelmointi 4.1 Sisällys Konekieli, symbolinen konekieli ja lausekieli. Lausekielestä konekieleksi: - Lähdekoodi, tekstitiedosto ja tekstieditorit. - Kääntäminen ja tulkinta. - Kääntäminen,

Lisätiedot

Kymenlaakson Ammattikorkeakoulu

Kymenlaakson Ammattikorkeakoulu Kymenlaakson Ammattikorkeakoulu Tietotekniikka/Tietoverkkotekniikka Jussi Toivakka ja Juha Törö MySQL & PostGRE 1 Sisällysluettelo 2 Yleistä tietokannoista... 3 3 MySQL... 4 3.1 Historiaa... 4 3.2 Käyttö...

Lisätiedot

11/20: Konepelti auki

11/20: Konepelti auki Ohjelmointi 1 / syksy 2007 11/20: Konepelti auki Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/11 Tämän luennon

Lisätiedot

L models. Käyttöohje. Ryhmä Rajoitteiset

L models. Käyttöohje. Ryhmä Rajoitteiset Teknillinen korkeakoulu T-76.115 Tietojenkäsittelyopin ohjelmatyö Lineaaristen rajoitteiden tyydyttämistehtävän ratkaisija L models Käyttöohje Ryhmä Rajoitteiset Versio Päivämäärä Tekijä Muutokset 0.1

Lisätiedot

Järjestelmäarkkitehtuuri (TK081702) AJAX, Asynchronous JavaScript And XML. AJAX, Asynchronous JavaScript And XML

Järjestelmäarkkitehtuuri (TK081702) AJAX, Asynchronous JavaScript And XML. AJAX, Asynchronous JavaScript And XML Järjestelmäarkkitehtuuri (TK081702) Ajax 2000-luvun alkuvuosina selainsotien rauhoituttua ohjelmistotalot alkoivat kehittää selainten luoman uuden ohjelmointiympäristön käyttötapoja. Syntyi AJAX (Asynchronous

Lisätiedot

SELVITYS PRO GRADUJEN KÄYTÖSTÄ TAIDEKIRJASTOSSA

SELVITYS PRO GRADUJEN KÄYTÖSTÄ TAIDEKIRJASTOSSA SELVITYS PRO GRADUJEN KÄYTÖSTÄ TAIDEKIRJASTOSSA Tapani Takalo Lapin korkeakoulukirjasto, yliopisto, taide 17.11.2011 1. Johdanto Lapin yliopiston taidekirjastossa on selvitetty taidekirjaston kokoelmiin

Lisätiedot

Virtualisointiympäristössä on kolme pääosaa: isäntä (host), virtualisointikerros ja vieras (guest).

Virtualisointiympäristössä on kolme pääosaa: isäntä (host), virtualisointikerros ja vieras (guest). 1 Virtualisoinnin avulla voidaan purkaa suora linkki suoritettavan sovelluksen (tai käyttöjärjestelmän tms.) ja sitä suorittavan laitteiston välillä. Näin saavutetaan joustavuutta laitteiston käytössä.

Lisätiedot

Haka-käyttäjien kokoontuminen Arto Tuomi CSC Tieteen tietotekniikan keskus

Haka-käyttäjien kokoontuminen Arto Tuomi CSC Tieteen tietotekniikan keskus Hakan teknisiä kuulumisia Haka-käyttäjien kokoontuminen 20.1.2009 Arto Tuomi CSC Tieteen tietotekniikan keskus SAML2 siirtymä 1.12.2008 Uudet Hakaan rekisteröitävät palvelut (SP) tukevat SAML 2.0 -tekniikkaa

Lisätiedot

Test-Driven Development

Test-Driven Development Test-Driven Development Syksy 2006 Jyväskylän yliopisto Test-Driven Development Testilähtöinen ohjelmistojen kehitystapa. Tehdään ensin testi, sitten vasta koodi. Tarkoituksena ei ole keksiä kaikkia mahdollisia

Lisätiedot

Virtuoosi POS-järjestelmien joukossa

Virtuoosi POS-järjestelmien joukossa Virtuoosi POS-järjestelmien joukossa Menestyvä liiketoiminta muistuttaa monin osin huippuunsa viritettyä orkesteria jossa eri osien sopusuhtainen vuorovaikutus ja integrointi luovat sykähdyttävän esityksen.

Lisätiedot

VisualStudio Pikaopas, osa 1: WEB-sivujen suunnittelu

VisualStudio Pikaopas, osa 1: WEB-sivujen suunnittelu HAAGA-HELIA ammattikorkeakoulu ict2td005 Ohjelmiston suunnittelutaito Sivu 1 / 5 VisualStudio Pikaopas, osa 1: WEB-sivujen suunnittelu Tämä pikaopas opastaa käyttämään VisualStudion web-sivujen suunnitteluominaisuuksia.

Lisätiedot

Miksi ja miten siirtyä käyttämään nykyistä ERP-järjestelmää pilvessä?

Miksi ja miten siirtyä käyttämään nykyistä ERP-järjestelmää pilvessä? Miksi ja miten siirtyä käyttämään nykyistä ERP-järjestelmää pilvessä? Sisällys Lukijalle 3 Mitä pilvipalveluilla tarkoitetaan? 4 Toiminnanohjausjärjestelmä pilvessä 5 Miksi siirtyä pilvipalveluihin? 6

Lisätiedot

Liikkuva työ pilotin julkinen raportti 30.06.2014

Liikkuva työ pilotin julkinen raportti 30.06.2014 Liikkuva työ pilotin julkinen raportti 30.06.2014 2 / 9 Green ICT pilotin raportti SISÄLLYSLUETTELO 1. Tiivistelmä koekäytöstä... 3 2. Toteutus... 4 2.1.Tavoite... 4 2.2.Mobiilisovellus... 4 2.3.Käyttöönotto...

Lisätiedot

AVOIN DATA AVAIN UUTEEN Seminaarin avaus Kansleri Ilkka Niiniluoto Helsingin yliopisto

AVOIN DATA AVAIN UUTEEN Seminaarin avaus Kansleri Ilkka Niiniluoto Helsingin yliopisto AVOIN DATA AVAIN UUTEEN Seminaarin avaus 1.11.11 Kansleri Ilkka Niiniluoto Helsingin yliopisto TIETEELLINEN TIETO tieteellinen tieto on julkista tieteen itseäänkorjaavuus ja edistyvyys tieto syntyy tutkimuksen

Lisätiedot

Sovellusarkkitehtuurit

Sovellusarkkitehtuurit HELIA TiKo-05 1 (9) Sovellusarkkitehtuurit ODBC (Open Database Connectivity)... 2 JDBC (Java Database Connectivity)... 5 Middleware... 6 Middleware luokittelu... 7 Tietokanta -middleware... 8 Tapahtumamonitorit

Lisätiedot

Kurssin hallinta -työväline

Kurssin hallinta -työväline Kurssin hallinta -työväline Kurssin hallinta -työvälineellä muokataan kursseja A&Ooppimisympäristöalustalla Kurssi koostuu - ohjelmasta (linkit työkaluihin& muihin resursseihin), - materiaaleista, - keskusteluryhmästä,

Lisätiedot

Järjestelmäarkkitehtuuri (TK081702) SOA, Service-oriented architecture SOA,

Järjestelmäarkkitehtuuri (TK081702) SOA, Service-oriented architecture SOA, Järjestelmäarkkitehtuuri (TK081702) SOA SOA-arkkitehtuuri perustuu xml:ään ja Web Services teknologioihin Mahdollistaa joustavan mukautumisen tuleviin muutoksiin Kustannustehokas Toteutukset perustuvat

Lisätiedot

GroupWise Calendar Publishing Host User

GroupWise Calendar Publishing Host User GroupWise 8 Calendar Publishing Host User 8 17. lokakuu 2008 Novell GroupWise Calendar Publishing Host User PIKAKÄYNNISTYS www.novell.com YLEISTÄ Novell GroupWise Calendar Publishing Host User on Web-pohjainen

Lisätiedot

E-kirjan kirjoittaminen

E-kirjan kirjoittaminen 1 E-kirjan kirjoittaminen Ohjeet e-kirjan kirjoittamiseen Tämän ohjeistuksen tavoitteena on auttaa sinua luomaan yksinkertainen e-kirja (pdftiedosto) asiakkaallesi. Kirja näyttää hänelle kuinka hyvin ymmärrät

Lisätiedot

Suorituskyvyn varmistaminen sovelluskehityksen eri vaiheissa Paavo Häkkinen, Presales Teamleader Compuware Finland

Suorituskyvyn varmistaminen sovelluskehityksen eri vaiheissa Paavo Häkkinen, Presales Teamleader Compuware Finland Suorituskyvyn varmistaminen sovelluskehityksen eri vaiheissa Paavo Häkkinen, Presales Teamleader Compuware Finland Epäonnistuminen ei ole vaikeaa Approximately 40% of mission-critical mainframe projects

Lisätiedot

Esimerkkiprojekti. Mallivastauksen löydät Wroxin www-sivuilta. Kenttä Tyyppi Max.pituus Rajoitukset/Kommentit

Esimerkkiprojekti. Mallivastauksen löydät Wroxin www-sivuilta. Kenttä Tyyppi Max.pituus Rajoitukset/Kommentit Liite E - Esimerkkiprojekti E Esimerkkiprojekti Olet lukenut koko kirjan. Olet sulattanut kaiken tekstin, Nyt on aika soveltaa oppimiasi uusia asioita pienen, mutta täydellisesti muotoiltuun, projektiin.

Lisätiedot

NELJÄ HELPPOA TAPAA TEHDÄ TYÖNTEKIJÖIDEN TYÖSTÄ JOUSTAVAMPAA

NELJÄ HELPPOA TAPAA TEHDÄ TYÖNTEKIJÖIDEN TYÖSTÄ JOUSTAVAMPAA NELJÄ HELPPOA TAPAA TEHDÄ TYÖNTEKIJÖIDEN TYÖSTÄ JOUSTAVAMPAA Vie yrityksesi pidemmälle Olitpa yrityksesi nykyisestä suorituskyvystä mitä mieltä tahansa, jokainen yritysorganisaatio pystyy parantamaan tuottavuuttaan

Lisätiedot

GDAL ja WFS: suora muunnos ogr2ogr-ohjelmalla

GDAL ja WFS: suora muunnos ogr2ogr-ohjelmalla GDAL ja WFS: suora muunnos ogr2ogr-ohjelmalla Viimeksi muokattu 30. tammikuuta 2012 GDAL tukee WFS-palvelun käyttämistä vektoritietolähteenä yhtenä muiden joukossa. WFS-ajurin käyttöohjeet löytyvät osoitteesta

Lisätiedot

Suvi Junes Tietohallinto / Opetusteknologiapalvelut 2012

Suvi Junes Tietohallinto / Opetusteknologiapalvelut 2012 Tiedostot Uudet ominaisuudet: - Ei Tiedostot-kohtaa alueen sisällä, vaan tiedostonvalitsin, jolla tiedostot tuodaan alueelle siihen kohtaan missä ne näytetään - Firefox-selaimella voi työpöydältä raahata

Lisätiedot

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista 582101 - Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista 1 Ohjelmistotuotannon työkaluuista Projektinhallintatyökalut (ei käsitellä tällä kurssilla) CASE- ja mallinnustyökalut (esim. Poseidon)

Lisätiedot

Toiminnalliset ja ei-toiminnalliset vaatimukset Tunnus (ID) Vaatimus Vaatimuksen

Toiminnalliset ja ei-toiminnalliset vaatimukset Tunnus (ID) Vaatimus Vaatimuksen Vaatimusluettelo versio 0.17 Toiminnalliset ja ei-toiminnalliset vaatimukset Tunnus (ID) Vaatimus Vaatimuksen Yleiset vaatimukset 1 Koodistopalvelujärjestelmä on selainkäyttöinen 2 Käyttöliittymän tulee

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 2 vastaukset Harjoituksen aiheena on BNF-merkinnän käyttö ja yhteys rekursiivisesti etenevään jäsentäjään. Tehtävä 1. Mitkä ilmaukset seuraava

Lisätiedot

Haaga-Helia / TIKO-05 1 (12) Tietokannan suunnittelu ja Toteutus Outi Virkki

Haaga-Helia / TIKO-05 1 (12) Tietokannan suunnittelu ja Toteutus Outi Virkki Haaga-Helia / TIKO-05 1 (12) Tietotarpeet Tietotarpeiden määrittely... 2 Tietotarveanalyysi... 3 Lähtökohtana tietojenkäsittelytehtävät... 3 Määrittelyn sisältö... 4 Vaiheistus... 5 Tietolähteet... 5 Lähestymistapa...

Lisätiedot

StatCrunch -laskentasovellus

StatCrunch -laskentasovellus StatCrunch -laskentasovellus Yleistä sovelluksesta StatCrunch on Integrated Analytics LLC:n valmistama sovellus tilastotieteellisten analyysien tuottamista varten. Se on verkon yli käytettävä analyysisovellus,

Lisätiedot

Loppuraportti. Virtuaali-Frami, CAVE-ohjelmisto. Harri Mähönen projektiassistentti Seinäjoen ammattikorkeakoulu. Versio

Loppuraportti. Virtuaali-Frami, CAVE-ohjelmisto. Harri Mähönen projektiassistentti Seinäjoen ammattikorkeakoulu. Versio 1 Loppuraportti Virtuaali-Frami, CAVE-ohjelmisto Harri Mähönen projektiassistentti Seinäjoen ammattikorkeakoulu Versio 1.0 15.1.2006 2 Sisällys Tiivistelmä... 3 1 Johdanto... 4 1.1 Dokumentin tarkoitus...

Lisätiedot

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014 18. syyskuuta 2014 IDL - proseduurit Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,

Lisätiedot

BlueJ ohjelman pitäisi löytyä Development valikon alta mikroluokkien koneista. Muissa koneissa BlueJ voi löytyä esim. omana ikonina työpöydältä

BlueJ ohjelman pitäisi löytyä Development valikon alta mikroluokkien koneista. Muissa koneissa BlueJ voi löytyä esim. omana ikonina työpöydältä Pekka Ryhänen & Erkki Pesonen 2002 BlueJ:n käyttö Nämä ohjeet on tarkoitettu tkt-laitoksen mikroluokan koneilla tapahtuvaa käyttöä varten. Samat asiat pätevät myös muissa luokissa ja kotikäytössä, joskin

Lisätiedot

Avoimen lähdekoodin ohjelmien käytettävyydestä

Avoimen lähdekoodin ohjelmien käytettävyydestä Matti Vuori Avoimen lähdekoodin ohjelmien käytettävyydestä Edistääkö avoimen lähdekoodin käyttö ohjelmien käyttävyyttä vai ei? Siitä on vielä oikeastaan aikaista tehdä diagnoosia, mutta erilaisia käytettävyyttä

Lisätiedot

TIES530 TIES530. Moniprosessorijärjestelmät. Moniprosessorijärjestelmät. Miksi moniprosessorijärjestelmä?

TIES530 TIES530. Moniprosessorijärjestelmät. Moniprosessorijärjestelmät. Miksi moniprosessorijärjestelmä? Miksi moniprosessorijärjestelmä? Laskentaa voidaan hajauttaa useammille prosessoreille nopeuden, modulaarisuuden ja luotettavuuden vaatimuksesta tai hajauttaminen voi helpottaa ohjelmointia. Voi olla järkevää

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 3 vastaukset Harjoituksen aiheena ovat imperatiivisten kielten muuttujiin liittyvät kysymykset. Tehtävä 1. Määritä muuttujien max_num, lista,

Lisätiedot

SharePoint verkkopalvelualustana

SharePoint verkkopalvelualustana SharePoint verkkopalvelualustana Agenda Onko Microsoft onnistunut pyrkimyksissään kehittää SharePointia nykyaikaiseksi verkkojulkaisualustaksi? Vieläkö se mielletään lähinnä dokumenttienhallintaan sopivana

Lisätiedot

Action Request System

Action Request System Action Request System Manu Karjalainen Ohjelmistotuotantovälineet seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos 25.10.2000 Action Request System (ARS) Manu Karjalainen Ohjelmistotuotantovälineet

Lisätiedot

OP-eTraderin käyttöopas

OP-eTraderin käyttöopas OP-eTraderin käyttöopas Tämä käyttöopas on lyhennetty versio virallisesta englanninkielisestä käyttöoppaasta, joka löytyy etrader - sovelluksen Help-valikosta tai painamalla sovelluksessa F1 -näppäintä.

Lisätiedot

RockID-varastonhallintajärjestelmän käyttöohje. v. 1.0

RockID-varastonhallintajärjestelmän käyttöohje. v. 1.0 RockID-varastonhallintajärjestelmän käyttöohje v. 1.0 Yleistä Rockstar lukijakäyttöliittymä Tuotteiden lukeminen lähtevään tilaukseen Tilaukseen kuulumattomat tuotteet Tuotteiden lukeminen tilauksesta

Lisätiedot

HTML & CSS. HTML (HyperText Markup Language) Antti Koivisto. ! HTML on sivujen kuvauskieli.

HTML & CSS. HTML (HyperText Markup Language) Antti Koivisto. ! HTML on sivujen kuvauskieli. HTML & CSS Antti Koivisto HTML (HyperText Markup Language)! HTML on sivujen kuvauskieli.! Se ei ole ohjelmointikieli.! HTML on merkintäkieli, joka koostuu monista merkintä tägeistä ().! Voidaan

Lisätiedot

Turvallinen veneily -näyttö. VesselView-ohjelmiston päivittäminen. Automaattinen WiFi-haku. Micro SD -kortin käyttäminen. Osa 1 - Alkuvalmistelut

Turvallinen veneily -näyttö. VesselView-ohjelmiston päivittäminen. Automaattinen WiFi-haku. Micro SD -kortin käyttäminen. Osa 1 - Alkuvalmistelut Turvallinen veneily -näyttö Kun VesselView käynnistetään sen oltua sammutettuna vähintään 30 sekuntia, näyttöön tulee turvalliseen veneilyyn liittyviä ohjeita sisältävä ikkuna. Jatka painamalla Accept

Lisätiedot

Johdatus Ohjelmointiin

Johdatus Ohjelmointiin Johdatus Ohjelmointiin Syksy 2006 Viikko 2 13.9. - 14.9. Tällä viikolla käsiteltävät asiat Peruskäsitteitä Kiintoarvot Tiedon tulostus Yksinkertaiset laskutoimitukset Muuttujat Tiedon syöttäminen Hyvin

Lisätiedot

TIMECON UNISON SUJUVAA TURVALLISUUDEN HALLINTAA

TIMECON UNISON SUJUVAA TURVALLISUUDEN HALLINTAA TIMECON UNISON SUJUVAA TURVALLISUUDEN HALLINTAA TIMECON UNISON Moderni IP-pohjainen turvallisuuden hallintajärjestelmä TIMECON UNISON mahdollistaa joustavuudellaan sekä helppokäyttöisyydellään organisaatioille

Lisätiedot

Suomen virtuaaliammattikorkeakoulu The XML Dokuments > 80 % % % < 50 % Suhteellinen osuus maksimiarvosta (%)

Suomen virtuaaliammattikorkeakoulu The XML Dokuments > 80 % % % < 50 % Suhteellinen osuus maksimiarvosta (%) Oppimisaihion arviointi / Arvioinnin tulos 9 Aineiston arvioinnin tulos arviointialueittain Suomen virtuaaliammattikorkeakoulu The XML Dokuments > 80 % 80 60 % 60 50 % < 50 % Arviointialue Ominaisuuksien

Lisätiedot

Verkkosivut perinteisesti. Tanja Välisalo 11.2.2009

Verkkosivut perinteisesti. Tanja Välisalo 11.2.2009 Verkkosivut perinteisesti Tanja Välisalo 11.2.2009 WWW-sivujen vieminen omaan kotisivutilaan yliopiston mikroverkossa https://salasana.jyu.fi Klikkaa painiketta Activate WWW Klikkaa painiketta Activate

Lisätiedot

Johdatus rakenteisiin dokumentteihin

Johdatus rakenteisiin dokumentteihin -RKGDWXVUDNHQWHLVLLQGRNXPHQWWHLKLQ 5DNHQWHLQHQGRNXPHQWWL= rakenteellinen dokumentti dokumentti, jossa erotetaan toisistaan dokumentin 1)VLVlOW, 2) UDNHQQHja 3) XONRDVX(tai esitystapa) jotakin systemaattista

Lisätiedot

Heikki Helin Metatiedot ja tiedostomuodot

Heikki Helin Metatiedot ja tiedostomuodot Heikki Helin 6.5.2013 Metatiedot ja tiedostomuodot KDK:n metatiedot ja tiedostomuodot KDK:n tekniset määritykset ja niiden väliset suhteet Aineistojen valmistelu ja paketointi on hyödyntäville organisaatioille

Lisätiedot

Pilviratkaisut ovat entistä suositumpia. Mutta mikä on oikea ratkaisu sinun maailmassasi? Lähde matkalle läpi avaruuden, ajaan ja maalaisjärjen

Pilviratkaisut ovat entistä suositumpia. Mutta mikä on oikea ratkaisu sinun maailmassasi? Lähde matkalle läpi avaruuden, ajaan ja maalaisjärjen Pilviratkaisut ovat entistä suositumpia. Mutta mikä on oikea ratkaisu sinun maailmassasi? Lähde matkalle läpi avaruuden, ajaan ja maalaisjärjen Verkkoratkaisujen tarjoaminen pk-yrityksille muistuttaa hieman

Lisätiedot

Interfacing Product Data Management System

Interfacing Product Data Management System Interfacing Product Data Management System Tekijä: Työn valvoja: Mats Kuivalainen Timo Korhonen Esitelmän sisältö Työn suorituspaikka - Ideal Product Data Oy Käsitteitä Työn tavoitteet Työn tulokset 1/5

Lisätiedot

HELIA 1 (8) Outi Virkki Tietokantasuunnittelu

HELIA 1 (8) Outi Virkki Tietokantasuunnittelu HELIA 1 (8) Luento 1 Johdatusta tietokannan suunnitteluun... 2 Tietokantasuunnittelu?... 2 Tietokanta?... 2 Tieto?... 2 Tietokantasuunnittelun tavoite, v.1... 2 Luotettavuus?... 3 Tietokantasuunnittelun

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 4.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 4.3.2009 1 / 35 Tiedostot Tiedostojen käsittelyä tarvitaan esimerkiksi seuraavissa tilanteissa: Ohjelman käsittelemiä

Lisätiedot

T harjoitustyö, kevät 2012

T harjoitustyö, kevät 2012 T-110.4100 harjoitustyö, kevät 2012 Kurssiassistentit T-110.4100@tkk.fi Tietotekniikan laitos Perustieteiden korkeakoulu Aalto-yliopisto 31.1.2012 Yleistä Kurssin osasuoritteita ovat kaksi osatenttiä,

Lisätiedot

Järjestelmän asetukset. Asetustiedostojen muokkaaminen. Pääkäyttäjä eli root. Järjestelmänhallinnan työkalut

Järjestelmän asetukset. Asetustiedostojen muokkaaminen. Pääkäyttäjä eli root. Järjestelmänhallinnan työkalut Järjestelmän asetukset Järjestelmänhallinnan työkalut Ubuntussa järjestelmän hallintaan ja asetusten muokkaamiseen tarkoitetut ohjelmat on koottu Järjestelmä-valikon alle Asetukset- ja Ylläpito -alavalikoista

Lisätiedot

Yksikkötestaus. import org.junit.test; public class LaskinTest public void testlaskimenluonti() { Laskin laskin = new Laskin(); } }

Yksikkötestaus. import org.junit.test; public class LaskinTest public void testlaskimenluonti() { Laskin laskin = new Laskin(); } } Yksikkötestauksella tarkoitetaan lähdekoodiin kuuluvien yksittäisten osien testaamista. Termi yksikkö viittaa ohjelman pienimpiin mahdollisiin testattaviin toiminnallisuuksiin, kuten olion tarjoamiin metodeihin.

Lisätiedot

Suomen virtuaaliammattikorkeakoulu Teknillinen mekanikka fem tutorials > 80 % % % < 50 % Suhteellinen osuus maksimiarvosta (%)

Suomen virtuaaliammattikorkeakoulu Teknillinen mekanikka fem tutorials > 80 % % % < 50 % Suhteellinen osuus maksimiarvosta (%) Oppimisaihion arviointi / Arvioinnin tulos 9 Aineiston arvioinnin tulos arviointialueittain Suomen virtuaaliammattikorkeakoulu Teknillinen mekanikka fem tutorials > 80 % 80 60 % 60 50 % < 50 % Arviointialue

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CS-A1111 14.9.2016 CS-A1111 Ohjelmoinnin peruskurssi Y1 14.9.2016 1 / 19 Oppimistavoitteet: tämän luennon jälkeen osaat kirjoittaa Python-ohjelman, joka pyytää käyttäjältä lukuja,

Lisätiedot

Pong-peli, vaihe Aliohjelman tekeminen. Muilla kielillä: English Suomi. Tämä on Pong-pelin tutoriaalin osa 3/7. Tämän vaiheen aikana

Pong-peli, vaihe Aliohjelman tekeminen. Muilla kielillä: English Suomi. Tämä on Pong-pelin tutoriaalin osa 3/7. Tämän vaiheen aikana Muilla kielillä: English Suomi Pong-peli, vaihe 3 Tämä on Pong-pelin tutoriaalin osa 3/7. Tämän vaiheen aikana Jaetaan ohjelma pienempiin palasiin (aliohjelmiin) Lisätään peliin maila (jota ei voi vielä

Lisätiedot

Linux. 00 Keskeiset piirteet. Unix ja Linux Helsingin ammattikorkeakoulu Stadia Vesa Ollikainen (muokannut M.Mäki-Uuro) Kysymyksiä

Linux. 00 Keskeiset piirteet. Unix ja Linux Helsingin ammattikorkeakoulu Stadia Vesa Ollikainen (muokannut M.Mäki-Uuro) Kysymyksiä Linux 00 Keskeiset piirteet Tux-pingviinin kuva: Larry Ewing, Simon Budig ja Anja Gerwinski Kysymyksiä 1. Mikä Linux on? 2. Kuinka Linux syntyi ja kehittyy? 3. Mitkä ovat Linuxin vahvuudet? 2 1 Linux on

Lisätiedot

AutoCAD-natiiviobjektin toteutus

AutoCAD-natiiviobjektin toteutus AutoCAD-natiiviobjektin toteutus Kontiotuote OY Maailman toiseksi suurin hirsitalotoimittaja Aloittanut toimintansa 70-luvulla Liikevaihto vuonna 2003-37,355 Milj. euroa josta vientiä 7,376 Milj. euroa

Lisätiedot

TIMECON UNISON SUJUVAA TURVALLISUUDEN HALLINTAA

TIMECON UNISON SUJUVAA TURVALLISUUDEN HALLINTAA TIMECON UNISON SUJUVAA TURVALLISUUDEN HALLINTAA TIMECON UNISON Moderni IP-pohjainen turvallisuuden hallintajärjestelmä. Mahdollisuus integrointiin eri järjestelmien välillä oli yksi pääsyistä, miksi valitsimme

Lisätiedot

Mainosankkuri.fi-palvelun käyttöohjeita

Mainosankkuri.fi-palvelun käyttöohjeita Mainosankkuri.fi-palvelun käyttöohjeita Sisällys 1. Johdanto... 1 2. Sisäänkirjautuminen... 1 3. Palvelussa navigointi... 2 4. Laitteet... 2 5. Sisällönhallinta... 4 6. Soittolistat... 7 7. Aikataulut...

Lisätiedot

Tuplaturvan tilaus ja asennusohje

Tuplaturvan tilaus ja asennusohje Tuplaturvan tilaus ja asennusohje 1. Kirjaudu lähiverkkokauppaan omilla tunnuksillasi tai luo itsellesi käyttäjätunnus rekisteröitymällä Lähiverkkokaupan käyttäjäksi. a. Käyttäjätunnus on aina sähköpostiosoitteesi.

Lisätiedot

Ikivihreä kirjasto loppuraportti määrittelyprojektille

Ikivihreä kirjasto loppuraportti määrittelyprojektille loppuraportti määrittelyprojektille Mikkelin Ammattikorkeakoulu Oy Sähkö ja informaatiotekniikan laitos Versiomuutokset 29.1.2014 viimeisin tilanne tietokantakonversiosta Mirja Loponen 7.2.2014 tarkennettu

Lisätiedot

Online-jako painos

Online-jako painos Online-jako 3.1 1. painos 2008 Nokia. Kaikki oikeudet pidätetään. Nokia, Nokia Connecting People ja Nseries ovat Nokia Oyj:n tavaramerkkejä tai rekisteröityjä tavaramerkkejä. Nokia tune on Nokia Oyj:n

Lisätiedot

vakuutuslaitosten ja TAMLAn välillä

vakuutuslaitosten ja TAMLAn välillä Asioiden välittämien työeläkealan toimijoiden ja TELKin sekä vakuutuslaitosten ja TAMLAn välillä Työeläkealan XML-käytäntöjen soveltaminen Taustaa, tämän dokumentin tarkoitus Asioiden välittäminen tapahtuu

Lisätiedot

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Matti Luukkainen 10.12.2009 Tässä esitetty esimerkki on mukaelma ja lyhennelmä Robert Martinin kirjasta Agile and Iterative Development löytyvästä

Lisätiedot

Aditro Tikon ostolaskujen käsittely versio SP1

Aditro Tikon ostolaskujen käsittely versio SP1 Toukokuu 2012 1 (8) Aditro versio 6.1.2 SP1 Päivitysohje Toukokuu 2012 2 (8) Sisällysluettelo 1. Tehtävät ennen versiopäivitystä... 3 1.1. Ohjelmistomuutosten luku... 3 1.2. Application Pool Identity...

Lisätiedot

Automatisoinnilla tehokkuutta mittaamiseen

Automatisoinnilla tehokkuutta mittaamiseen Automatisoinnilla tehokkuutta mittaamiseen Finesse seminaari 22.3.2000 Päivi Parviainen 1 Miksi automatisoida? Mittaamisen hyödyt ohjelmistokehityksen ajantasainen seuranta ja hallinta tuotteen laadun

Lisätiedot

Avoimen ja yhteisen rajapinnan hallintasuunnitelma v.1.4

Avoimen ja yhteisen rajapinnan hallintasuunnitelma v.1.4 Avoimen ja yhteisen rajapinnan hallintasuunnitelma v.1.4 Tämän esityksen sisältö tausta avoimet toimittajakohtaiset rajapinnat (toimittajan hallitsemat rajapinnat) avoimet yhteiset rajapinnat (tilaajan

Lisätiedot

EASY PILVEN Myynnin opas - Storage IT

EASY PILVEN Myynnin opas - Storage IT EASY PILVEN Myynnin opas - Storage IT EASY Pilvi EASY Tiedostopalvelin: Tiedostojen tallennukseen ja jakamiseen soveltuva monipuolinen järjestelmä EASY Pilvipalvelin: Täysiverinen, skaalautuva käyttöjärjestelmän

Lisätiedot

Ohjelmointi 1 / syksy /20: IDE

Ohjelmointi 1 / syksy /20: IDE Ohjelmointi 1 / syksy 2007 10/20: IDE Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/8 Tämän luennon rakenne

Lisätiedot

Kuluttajille tarjottavan SIP-sovelluksen kannattavuus operaattorin kannalta

Kuluttajille tarjottavan SIP-sovelluksen kannattavuus operaattorin kannalta Kuluttajille tarjottavan SIP-sovelluksen kannattavuus operaattorin kannalta Diplomityöseminaari 6.6.2005 Tekijä: Sanna Zitting Valvoja: Heikki Hämmäinen Ohjaaja: Jari Hakalin Sisältö Taustaa Ongelmanasettelu

Lisätiedot

TIEDONHAKU INTERNETISTÄ

TIEDONHAKU INTERNETISTÄ TIEDONHAKU INTERNETISTÄ Internetistä löytyy hyvin paljon tietoa. Tietoa ei ole mitenkään järjestetty, joten tiedonhaku voi olla hankalaa. Tieto myös muuttuu jatkuvasti. Tänään tehty tiedonhaku ei anna

Lisätiedot

HOJ J2EE & EJB & SOAP &...

HOJ J2EE & EJB & SOAP &... HOJ J2EE & EJB & SOAP &... Ville Leppänen HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/18 Missä mennään... 1. Johdanto (1h) 2. Säikeet (2h) 3. Samanaikaisuudesta (2h) 4. Hajautetuista sovelluksista

Lisätiedot

Harjoitus 3: Flash-komponenttiarkkitehtuuri (18.3.2016)

Harjoitus 3: Flash-komponenttiarkkitehtuuri (18.3.2016) Harjoitus 3: Flash-komponenttiarkkitehtuuri (18.3.2016) Tietokoneavusteinen opetus -kurssilla opetetaan Adobe Flash CS6:n käyttämistä neljänä kertana: 11.3.2016, 15.3.2016, 18.3.2016 ja 1.4.2016. Harjoituskerroilla

Lisätiedot

2007 Nokia. Kaikki oikeudet pidätetään. Nokia, Nokia Connecting People, Nseries ja N77 ovat Nokia Oyj:n tavaramerkkejä tai rekisteröityjä

2007 Nokia. Kaikki oikeudet pidätetään. Nokia, Nokia Connecting People, Nseries ja N77 ovat Nokia Oyj:n tavaramerkkejä tai rekisteröityjä Nokia Lifeblog 2.5 2007 Nokia. Kaikki oikeudet pidätetään. Nokia, Nokia Connecting People, Nseries ja N77 ovat Nokia Oyj:n tavaramerkkejä tai rekisteröityjä tavaramerkkejä. Muut tässä asiakirjassa mainitut

Lisätiedot

Mitä on konvoluutio? Tutustu kuvankäsittelyyn

Mitä on konvoluutio? Tutustu kuvankäsittelyyn Mitä on konvoluutio? Tutustu kuvankäsittelyyn Tieteenpäivät 2015, Työohje Sami Varjo Johdanto Digitaalinen signaalienkäsittely on tullut osaksi arkipäiväämme niin, ettemme yleensä edes huomaa sen olemassa

Lisätiedot

Liite A Määritelmät 1 (6)

Liite A Määritelmät 1 (6) 1 (6) Liite A Määritelmät 2.3 Uusi versio 2.4 Versio joulukuun neuvotteluja varten 2.6 Tarjoajille 29.1.2015 lähetetty versio 2.7 Helmikuun 2015 neuvotteluissa käsitelty versio 2.81 Tarjoajille 18.2.2015

Lisätiedot

VAATIMUSMÄÄRITTELY Virtuaaliyhteisöjen muodostaminen Versio 1.0 (luonnos 4)

VAATIMUSMÄÄRITTELY Virtuaaliyhteisöjen muodostaminen Versio 1.0 (luonnos 4) VAATIMUSMÄÄRITTELY Versio 1.0 (luonnos 4) Edited by Checked by Approved by Juha Parhankangas Luonnos 4 i Sisällysluettelo DOKUMENTIN VERSIOT 1 1. JOHDANTO 2 1.1. Projektin luonne 2 1.2. Tarkoitus ja kattavuus

Lisätiedot

Suomen virtuaaliammattikorkeakoulu Teknillinen mekaniikka templateaihio > 80 % % % < 50 % Suhteellinen osuus maksimiarvosta (%)

Suomen virtuaaliammattikorkeakoulu Teknillinen mekaniikka templateaihio > 80 % % % < 50 % Suhteellinen osuus maksimiarvosta (%) Oppimisaihion arviointi / Arvioinnin tulos 9 Aineiston arvioinnin tulos arviointialueittain Suomen virtuaaliammattikorkeakoulu Teknillinen mekaniikka templateaihio > 80 % 80 60 % 60 50 % < 50 % Arviointialue

Lisätiedot