OHJELMOINTIRAJAPINTA- PALVELUN TOTEUTTAMINEN TIETOVERKOSSA
|
|
- Anton Mäki
- 8 vuotta sitten
- Katselukertoja:
Transkriptio
1 Opinnäytetyö (AMK) Tietotekniikan koulutusohjelma Ohjelmistotekniikka 2011 Antti Kallio OHJELMOINTIRAJAPINTA- PALVELUN TOTEUTTAMINEN TIETOVERKOSSA
2 OPINNÄYTETYÖ (AMK) TIIVISTELMÄ Turun ammattikorkeakoulu Tietotekniikan koulutusohjelma Ohjelmistotekniikka Kesäkuu Ohjaaja: TkL Jari-Pekka Paalassalo Antti Kallio OHJELMOINTIRAJAPINTAPALVELUN TOTEUTTAMINEN TIETOVERKOSSA Tässä opinnäytetyössä suunniteltiin ja toteutettiin ohjelmointirajapinta joka mahdollistaa mysync-palvelun hallinnoinnin tietoverkon kautta. Rajapintaa käyttäen palvelun käyttäjät voivat rakentaa omia käyttöliittymiä tai muita työkaluja palvelun hallinnointiin. Ohjelmointirajapinta toteutettiin REST-arkkitehtuurityylin mukaisesti. Rajapintapalvelu toimii muiden mysync-palveluiden tavoin Java Servlet -palvelimella. Palvelun toteutuksessa käytettiin Restlet-sovelluskehystä, joka hoitaa HTTP-kommunikoinnin perustasolla. Sovelluskehyksen ja arkkitehtuurityylin mukaisesti toteutettiin resurssiluokkia, jotka suorittavat rajapinnan käyttäjän pyytämät toiminnot. Palvelu käyttää kommunikoinnissa XML-tietorakenteita. Tietorakenteet luodaan pääosin automatisoidusti käyttäen XStream-kirjastoa, joka muuntaa Java-objekteja XML-tietorakenteiksi ja päin vastoin. Ohjelmointirajapintapalveluun saatiin toteutettua kaikki halutut ominaisuudet, ja se on aktiivisessa tuotantokäytössä. ASIASANAT: HTTP, REST, Restlet, Servlet, XStream
3 BACHELOR S THESIS ABSTRACT TURKU UNIVERSITY OF APPLIED SCIENCES Degree programme in Information Technology Software Engineering June Instructor: Jari-Pekka Paalassalo, Lic. Tech., Principal Lecturer Antti Kallio IMPLEMENTATION OF AN APPLICATION PROGRAMMING INTERFACE IN A DATA NETWORK The subject of this thesis was to desing and implement an application programming interface that enables managing of the mysync-service via data networks. By using this interface, the users of the service can create their own user interfaces or other tools to manage the service. The application programming interface was designed according to the RESTful architectural style. The interface service operates on a Java Servlet server among other mysync service parts. The service was implemented using the Restlet software framework, which manages basic HTTP communication. Resource classes were implemented according with the framework and the RESTful style to perform the tasks requested by users. The service uses XML structures to communicate with client applications. The structures are created mainly using automated tools, specifically the XStream library, which transforms Java objects to XML structures and back. The application programming interface service was implemented with all requirements met and it is in active usage. KEYWORDS: HTTP, REST, Restlet, Servlet, XStream
4 SISÄLTÖ 1 JOHDANTO 1 2 ARKKITEHTUURI Yleisarkkitehtuuri REST-arkkitehtuurityyli Vaihtoehtoja REST-tyylille 3 3 KÄYTETYT TEKNIIKAT HTTP-protokolla Java Servlet Restlet-sovelluskehys XStream-sovelluskirjasto 7 4 SUUNNITTELU Viestirakenteet Resurssien sijainnit Suodatus 10 5 TOTEUTUS Käyttäjien tunnistus ja käyttäjäoikeudet XML-skeema Resurssien toteutus Ohjeistus 14 6 TESTAUS JA KÄYTTÖÖNOTTO Testaus Palvelun käyttöönotto 17 7 YHTEENVETO 19 LÄHTEET 20
5 KUVAT Kuva 1 mysync-järjestelmän palvelut 2 Kuva 2 Kuvakaappaus palvelun ohjeistuksesta 15 Kuva 3 Kuvakaappaus RESTClient-sovelluksesta 16 Kuva 4 Apache Tomcat -palvelimen päivitystyökalu 18 TAULUKOT Taulukko 1 Tavallisimmat HTTP-komennot [5] 4 Taulukko 2 Esimerkki XML-dokumentin elementtien nimien siistimisestä 8 Taulukko 3 Resurssien sijainteja 10 Taulukko 4 Esimerkkejä suodattimista 11 KOODIESIMERKIT Koodiesimerkki 1 Laitteen poistava metodi 7 Koodiesimerkki 2 Osa XSD-tyyppisestä XML-skeemasta 13
6 SYMBOLI- JA LYHENNELUETTELO HTML JSP RPC kieli jolla www-sivut on koostettu. (Hypertext Markup Language) teknologia jolla voidaan tarjota dynaamisesti luotuja HTML-, XML- tai muita dokumentteja. (JavaServer Pages) tekniikka joka mahdollistaa ohjelmametodien käytön verkkoyhteyden välityksellä. (Remove Procedure Call) SOAP vaihtoehto REST-tyylille verkkopalvelun protokollavalinnaksi. (Simple Object Access Protocol) URI W3C WAR XML ilmaisee resurssin sijainnin verkkopalvelimella. (Uniform Resource Identifier) kansainvälinen organisaatio joka kehittää standardeja World Wide Webin käyttöön. (World Wide Web Consortium) tiedostopaketti, joka voi sisältää JSP-sivuja, servletohjelmia ja muita tiedostoja. Käytetään palvelimien ohjelmien kokoamiseen. (Web application Archive) joukko sääntöjä, joilla voidaan luoda määrityksiä dokumenttien rakenteille. (Extensible Markup Language) XSD XML-skeemakieli jolla voidaan määrittää XMLdokumenttien muotosäännöt.. (XML Schema Document)
7 1 1 JOHDANTO Sync Oy:n kehittämä mysync-järjestelmä mahdollistaa matkapuhelimien keskitetyn etähallinnan. Järjestelmän ominaisuuksia ovat esimerkiksi puhelimen asetusten määritys, laitteen lukitus, avaus ja tyhjennys komennettaessa sekä kontaktitietojen sekä muiden tietojen hallinta ja synkronointi useiden laitteiden välillä. Tässä opinnäytetyössä järjestelmään lisättiin mahdollisuus hallita näitä ominaisuuksia Internetin kautta avoimen ohjelmointirajapinnan avulla. Rajapinta antaa järjestelmää käyttäville tahoille mahdollisuuden toteuttaa uusia hallintakäyttöliittymiä tai automatisoida toimintaa haluamillaan tavoilla ilman, että itse järjestelmään tarvitsee tehdä muutoksia. Rajapinnan käyttö on mahdollista järjestelmän olemassa olevilla käyttäjätunnuksilla. Opinnäytetyön ohessa luotiin myös dokumentaatio rajapinnan käyttöä varten.
8 2 2 ARKKITEHTUURI 2.1 Yleisarkkitehtuuri Olemassa olevan mysync-järjestelmän arkkitehtuuri perustuu Java Servlet - palvelinohjelmistolla suoritettaviin palveluihin. Erillisiin palveluihin kuuluvat graafinen www-käyttöliittymä, OMA DM -laitehallintapalvelin ja OMA DS - synkronointipalvelin. Järjestelmän ytimenä toimii LDAP-tietokanta. Kaikki palvelut voidaan asentaa uudelle palvelinkoneelle yhdestä asennuspaketista. Kuva 1 havainnollistaa järjestelmän eri palveluiden käyttäjiä. Toteutettava REST-palvelu mahdollistaa uusien hallintamenetelmien toteuttamisen olemassa oleville palvelimille ja aivan uusien käyttötapojen hyödyntämisen. Järjestelmänvalvojat Organisaation hallinnoijat Loppukäyttäjät mysync-palvelin OMA DM - laitehallinta Matkapuhelimet OMA DS laitteen synkronointi REST-palvelu Muut palvelimet Tietokantapalvelin Ulkoiset hallintaohjelmistot LDAP WWWkäyttöliittymä Älypuhelinsovellukset Kuva 1 mysync-järjestelmän palvelut Eräs mysyncin sisäisistä osista on ns. core-projekti, joka mahdollistaa tietokannan yksinkertaisen käsittelyn Java-pohjaisista ohjelmista. Siksi toteutettava palvelu on järkevintä toteuttaa Java Servlet -palveluna.
9 3 2.2 REST-arkkitehtuurityyli REST (Representational State Transfer) on termi, jonka Roy Fielding määritti väitöskirjassaan vuonna 2000 [1]. Se ei ole varsinaisesti ohjelmistoarkkitehtuuri, vaan joukko määrityksiä ja rajoitteita, joista muodostuu arkkitehtuurityyli. Rajoitteet, joita noudattamalla luodaan REST-tyylinen sovellus, ovat [2] seuraavat: Järjestelmän on oltava asiakas-palvelin-kokonaisuus. Sen on oltava tilaton, eli palvelin ei pidä kirjaa asiakkaan tilasta ja jokainen kutsu on itsenäinen. Järjestelmän on tuettava välimuisteja sen eri tasoilla. Jokaisella resurssilla on oltava yksilöllinen sijainti. Sen on skaalauduttava. Staattiset www-sivustot toteuttavat nämä rajoitteet. Toisaalta suurin osa dynaamisista www-sivustoista ei noudata kaikkia rajoitteita. Yleisin rikkomus on asiakkaan tilan tallennus käyttämällä istuntotunnisteita palvelimella tai evästeissä. 2.3 Vaihtoehtoja REST-tyylille Monet suosituimmista verkkopalveluista on toteutettu käyttäen REST-tyyliä. Esimerkkejä ovat Twitter, Yahoo ja Flickr. Googlen verkkopalveluista osa on toteutettu SOAP-protokollalla, osa RPC-toiminnoilla [3]. Resursseja käytetään SOAP ja RPC-arkkitehtuuriin perustuvissa palveluissa ohjelmointikielistä tutuilla funktionimillä. Tällaisten palveluiden ohjelmointirajapinta usein voidaankin luoda automatisoidusti olemassa olevista muista rajapinnoista [4]. Haittapuolena verkkoliikenteen määrä voi kasvaa johtuen huonosti optimoiduista komentoviesteistä ja rajapinnan käyttö vaikeutuu johtuen komentoviestien abstraktiotasojen lisääntymisestä.
10 4 3 KÄYTETYT TEKNIIKAT 3.1 HTTP-protokolla HTTP (Hypertext Transfer Protocol) on synkroninen tiedonsiirtoprotokolla [8], jota tavallisimmin käytetään WWW-sivujen ja niillä tarjottavien tiedostojen siirtoon. Protokolla soveltuu kuitenkin myös muihinkin tarkoituksiin. Koska protokolla on yleisessä käytössä Internet-rajapinnoissa, asiakasohjelmien tekijöillä on todennäköisesti kokemusta sen käytöstä. Vaihtoehtoisesti voitaisiin luoda kokonaan uusi protokolla, joka saattaisi käyttää tehokkaammin tiedonsiirtokapasiteettia, mutta olisi epäyhteensopiva monien olemassa olevien työkalujen kanssa. käyttö on suhteellisen yksinkertaista. Asiakasohjelma lähettää palvelimelle pyynnön, jossa määritetään HTTP-komennon tyyppi, halutun resurssin sijainti, joukko otsaketietoja ja mahdollisesti viestirunko, jonka sisältö voi olla mitä tahansa, esimerkiksi tekstiä, HTML-sivu, XML-dataa tai jopa binaaridataa. Palvelin vastaa pyyntöön samankaltaisella paketilla, jossa on vastauskoodi, koodin tarkoitusta selittävä teksti, otsaketietoja ja mahdollisesti vapaamuotoinen viestirunko [5]. Vastauskoodi voi kertoa esimerkiksi sen, hyväksyttiinkö pyynnössä ollut käsky vai tapahtuiko jokin virhe. Asiakasohjelma voi sitten jatkaa toimintaansa oman logiikkansa mukaisesti. Tavallisimmat HTTP-komennot on listattu taulukossa 1. Komennoilla on yleisesti ymmärretyt tarkoitukset, mutta niiden todelliset tarkoitukset ja seuraukset ovat palvelimen toteutuksen varassa. Taulukko 1 Tavallisimmat HTTP-komennot [5] HTTP-komento GET Selitys GET on komento jolla haetaan palvelusta tietoa. GETkomento ei saa aiheuttaa palvelussa muutoksia, joten peräkkäiset kutsut antavat aina identtisen vastauksen, ellei jokin muu ole aiheuttanut muutoksia. GET-komento on siis turvallinen suorittaa.
11 5 PUT DELETE POST PUT-komentoa käytetään yleensä viestirungossa olevan tiedon tallentamiseen tai päivittämiseen palveluun. DELETE-komennolla poistetaan resursseja. POST-komennolla voidaan suorittaa komentoja tai syöttää tietoja palveluun. POST-komennon suoritus aiheuttaa yleensä uusia, erilaisia seurauksia toisin kuin edelliset komennot. Otsaketiedot sisältävät metatietoa siirrettävästä datasta. Niiden avulla HTTPkomennon ohessa voidaan sisällyttää mm. käyttäjätunnus, viestin sisällön muodon tyyppi ja kieli sekä tietoa viestin sisällön vanhenemisesta. 3.2 Java Servlet Servletit ovat Java-ohjelmointikielen luokkia joilla laajennetaan palvelin-asiakasarkkitehtuurin palvelimen toimintoja. Luokka on servlet jos se toteuttaa Java Servet API -rajapinnan. Silloin se pystyy vastaanottamaan pyyntöjä ja reagoimaan niihin. Servlettejä käytetään yleensä tuottamaan HTTP-palveluja, esimerkiksi HTML-sivustoja tai XML-tietopalveluja. 3.3 Restlet-sovelluskehys Palvelinohjelman rakentaminen käyttäen suoraan Java-ympäristön tarjoamaa HTTP-rajapintaa on toki mahdollista. Toteutettavia osioita olisivat mm. käyttäjän todennusmenetelmät, resurssin sijainnin tunnistaminen ja virheviestien käsittely. Edellä mainitut ovat jokaisen HTTP-perustaisen palvelimen perusosia. Näiden osien toteuttaminen itse viivyttäisi projektia ja mahdollisesti korottaisi ohjelmiston monimutkaisuutta tarpeettomasti. Siksi on yleensä järkevää käyttää valmiita sovelluskirjastoja ja sovelluskehyksiä joita on jo kehitetty pitkään. Sovelluskehyksen käytön etuna ovat virheiden pieni todennäköisyys, nopea käyttöönotto ja valmis kehityskehys johon voidaan liittää oman palvelimen toimintalogiikka.
12 6 Restlet [6] oli yksi ensimmäisiä Java-sovelluskehyksiä joka noudatti RESTtyyliä. Se saavutti suosiota nopeasti helppokäyttöisyydellään. Sitä kehittää ranskalainen Noelios Technologies, ja sitä levitetään nykyisin avoimen lähdekoodin lisenssillä [2]. Restlet-kehys mahdollistaa sekä palvelin- että asiakasohjelmien luomisen käyttäen samaa kirjastoa ja samoja resurssiluokkia. Tämä helpottaa silloin myös asiakasohjelmien luomista, kun palvelimella käytetyt resurssiluokat on annettu asiakasohjelman käyttöön. Koska Restlet-kehyksestä on versio Android-matkapuhelimiin, on näin helppo tehdä Android-laitteissa toimiva yhteensopiva asiakasohjelma. Tällainen ohjelma onkin jo toteutettu rajapinnan avulla. Restlet-kehys hallitsee mm. resurssien sijaintien määrittelyn ja resursseihin liittyviin komentoihin reagoinnin. Ohjelmoijan ei tarvitse huolehtia HTTP-viestien välityksestä. Resurssit määritellään omina luokkinaan. Resurssiluokissa ilmoitetaan annotaatioilla, mitkä metodit vastaavat mitäkin HTTP-komentoa ja mitkä tietomuodot ovat mahdollisia viestirungoissa. Metodit saavat parametrina asiakkaalta vastaanotetun viestirungon ja metodit voivat tarvittaessa lopettaessaan palauttaa viestirungon ja HTTP-koodin, jotka välitetään asiakkaalle. Koodiesimerkissä 1 on esitelty metodi, joka poistaa yksittäisen laitteen. Metodi on annotaatiolla merkitty vastaamaan HTTP-komentoa DELETE. Metodi ei ota parametrina viestirunkoa eikä palauta viestirunkoa. Se käyttää vain resurssin sijainnissa määritettyjä organisaation ja laitteen tunnuksia. Jos poiston aikana tapahtuu virheitä, metodi lisää vastaukseen virhetietoja.
13 7 Koodiesimerkki 1 Laitteen poistava public void deletedevice() { String orgcode = geturisegment("orgcode"); String devicecn = geturisegment("devicecn"); OrganisationStore orgstore = new LdapOrganisationStore(getSession().getAccountEnvironment()); try { Organisation org = new Organisation(orgCode); orgstore.read(org); DeviceStore devicestore = orgstore.getdevicestore(org); Device device = new Device(deviceCn); devicestore.read(device); StoreAction.removeDevice(device, devicestore, orgstore.getgroupstore(org), orgstore.geteventlogitemstore(org), getsession().getaccessaccount().getglobalkey()); return; } catch (DataStoreException e) { e.printstacktrace(); getresponse().setstatus(status.server_error_internal, e); return; } catch (NotFoundException e) { getresponse().setstatus(status.client_error_not_found, e, "Organisation or account not found or access denied"); return; } } Restlet-sovelluskehyksellä toteutettu palvelu voidaan suorittaa sellaisenaan Java Servlet -palvelinohjelmistossa. Toteutetussa rajapinnassa onkin toimittu juuri näin. 3.4 XStream-sovelluskirjasto XML (Extensible Markup Language) on joukko sääntöjä joilla voidaan luoda dokumentteja, joita pystyvät lukemaan ja kirjoittamaan sekä tietokonesovellukset että ihmiset. Sitä käytetään laajasti verkkopalveluissa kaikenlaisten tietojen välittämisessä. Toteutetussa rajapinnassa kaikki komennot ja tiedot välitetään XML-viesteinä. mysync-järjestelmässä tietotyyppejä on useita kymmeniä. XMLtiedostomuotojen määritys käsin jokaiselle on aikaa vievää, ja niiden ylläpito muutosten tapahtuessa vaivalloista. Siksi on helpointa käyttää jotain järjestelmää, joka luo itsenäisesti Java-objekteista XML-dokumentteja, ja vastaavasta XML-dokumenteista Java-objekteja. XStream [7] on helppokäyttöinen sovelluskirjasto, joka suorittaa muunnoksia Java-objektien ja XML-dokumenttien välillä. Normaalisti luokkien ja muuttujien
14 8 nimiä käytetään suoraan XML-dokumenteissa elementtien niminä. XStream mahdollistaa omien nimien määrittelyn jotta elementtien nimet voivat olla siistimpiä. Lisäksi XStream mahdollistaa omien muuntajien määrittelyn, jotta monimutkaisemmista luokista saadaan siistimpiä ja yksinkertaisempia XMLdokumentteja. Taulukossa 2 on esimerkki käyttäjätiliobjektin elementtien nimien siistimisestä. Taulukko 2 Esimerkki XML-dokumentin elementtien nimien siistimisestä Ennen siistimistä <com.trivore.mysync.framework.core.account> <globalkey>cn=johndoe,ou=account,orgcode=testorg, ou=data,dc=mysync</globalkey> <cn>johndoe</cn> <displayname>doe, John</displayName> <validto> </validto> <userclass>enduser</userclass> <givenname>john</givenname> <sn>doe</sn> <syncmail> <com.trivore.mysync.framework.core.syncmail> <cn>mail.0</cn> <mail>doe@example.com</mail> <mailprotocol>imap</mailprotocol> </com.trivore.mysync.framework.core.syncmail> <com.trivore.mysync.framework.core.syncmail> <cn>mail.1</cn> <mail>doe@gmail.com</mail> <mailprotocol>imap</mailprotocol> </com.trivore.mysync.framework.core.syncmail> </syncmail> </com.trivore.mysync.framework.core.account> Siistimisen jälkeen <account> <globalkey>cn=johndoe,ou=account,orgcode=test org,ou=data,dc=mysync</globalkey> <cn>johndoe</cn> <displayname>doe, John</displayName> <validto> </validto> <userclass>enduser</userclass> <givenname>john</givenname> <sn>doe</sn> <syncmails> <syncmail> <cn>mail.0</cn> <mail>doe@example.com</mail> <mailprotocol>imap</mailprotocol> </syncmail> <syncmail> <cn>mail.1</cn> <mail>doe@gmail.com</mail> <mailprotocol>imap</mailprotocol> </syncmail> </syncmails> </account>
15 9 4 SUUNNITTELU 4.1 Viestirakenteet Asiakasohjelman ja palvelun välisessä kommunikoinnissa päätettiin käyttää yleisiä XML-dokumentteja. Käytetty XStream-kirjasto mahdollistaa muunnoksen tavallisten Java-objektien ja XML-dokumenttien välillä vaivattomasti. XStream mahdollistaa myös JSON-viestirakenteiden käytön, ja tätä mahdollisuutta on käytetty hyväksi toteutetussa ohjelmointirajapinnassa. JSON-muodon tuen lisäys ei aiheuta juurikaan lisätyötä. Perusobjektit, kuten laite tai kontakti, riittävät joihinkin toimintoihin, kuten esimerkiksi lue laitteen tiedot tai päivitä kontakti. Monet muut toiminnat tarvitsevat kuitenkin lisäinformaatiota. Esimerkiksi lisää uusi laite vaatii lisätietona mallilaitteen tunnuksen. Tällaisia tapauksia varten on luotu säiliöobjekteja, joihin sisältyy mahdollisten perusobjektien lisäksi lisätietoja. Jotkin perusobjektit sisältävät niin paljon tietoa, että koko objektin lataaminen tietoverkon kautta voi kuluttaa turhan paljon tiedonsiirtokapasiteettia. Esimerkiksi organisaation kaikkien laitteiden listaaminen yhdessä on tällainen tapaus. Tällaisissa tilanteissa palvelin käyttääkin linkkiobjekteja jotka sisältävät laitteista vain rajallisen määrän tietoa ja linkin resurssiin josta yksittäisen laitteen kaikki tiedot voi hakea. 4.2 Resurssien sijainnit Resurssit ovat kohteita joiden kautta palvelua voidaan käskyttää. Ohjelmointirajapinnan käyttäjät kutsuvat näitä resursseja HTTP-pyynnöillä. Tavallisilla Internet-sivustoilla resurssit ovat sivuja ja kuvia. Resurssin sijainti määritellään hierarkkisesti käyttäen tekstijonoa, jossa hierarkkiset osat erotellaan kauttaviivoilla. Taulukossa 3 on palvelussa olevia resurssien sijainteja selityksineen. Riippuen HTTP-pyynnössä määritetystä HTTPkomennosta, palvelin reagoi kutsuun eri tavoin.
16 10 Taulukko 3 Resurssien sijainteja Resurssi /org /org/{orgcode} /org/{orgcode}/account /org/{orgcode}/account/{accountcn} /org/{orgcode}/account/{accountcn} /pim/{pimtype} /org/{orgcode}/device /org/{orgcode}/device/{devicecn} /org/{orgcode}/device/{devicecn} /task /org/{orgcode}/device/{devicecn} /task/{taskname} /org/{orgcode}/group /org/{orgcode}/template/account /org/{orgcode}/template/device /org/{orgcode}/log /org/{orgcode}/report /org/{orgcode}/report/{reportid} /deviceinfo /deviceinfo/{brand}/{cn} /operator /operator/{c}/{cn} Selite Lista organisaatioista joihin lukuoikeus Organisaation käsittely Organisaation käyttäjätilien käsittely Yksittäisen käyttäjätilin käsittely Käyttäjätilin kontakti- ja muiden tietojen käsittely Organisaation laitteiden käsittely Yksittäisen laitteen käsittely Laitteen tukemien toimintojen listaus Laitteen toiminnon suorittaminen Käyttäjäryhmien käsittely Käyttäjämallien käsittely Laitemallien käsittely Tapahtumatietojen luku Raporttien listaus Yksittäisen raportin luku Laitetyyppien käsittely Yksittäisen laitetyypin käsittely Puhelinoperaattorien käsittely Yksittäisen puhelinoperaattorin käsittely 4.3 Suodatus Monissa yhteyksissä, joissa palvelu palauttaa useita tietorakenteita (esimerkiksi listattaessa laitteita), olisi toivottavaa, että hakutuloksia voitaisiin rajata parametrien mukaisesti. Suodatustoiminnot voidaan lisätä URI:n parametreina. Koska mysync-palvelu tukee suodatettua hakua myös sisäisesti, suodatus-
17 11 mahdollisuuden lisäyksestä seuraa suorituskykyparannusta myös palvelimen sisällä. Suodatinparametrit lisätään URI:in muodossa {parametri}_{suodatin}={arvo}. Suodattimia voidaan lisätä useita yhtä aikaa, jolloin ne yhdistetään käyttämällä loogista funktiota AND. Taulukossa 4 on esimerkkejä suodattimista. Taulukko 4 Esimerkkejä suodattimista Suodatin Arvo vaaditaan Esimerkki On yhtä kuin arvo Kyllä cn_equals=johndoe On eri kuin arvo Kyllä cn_notequals=johndoe Sisältää arvon Kyllä cn_contains=john Ei sisällä arvoa Kyllä cn_notcontains=john Alkaa arvolla Kyllä cn_startswith=john Ei ala arvolla Kyllä cn_notstartswith=john Loppuu arvoon Kyllä cn_endswith=doe Ei lopu arvoon Kyllä cn_notendswith=doe On olemassa (ei ole tyhjä) Ei cn_exists Ei ole olemassa (on tyhjä) Ei cn_notexists Suurempi kuin arvo Kyllä locked_greaterthan=5 Pienempi kuin arvo Kyllä locked_lessthan=5
18 12 5 TOTEUTUS 5.1 Käyttäjien tunnistus ja käyttäjäoikeudet Ohjelmointirajapinnan kautta voidaan päästä käsiksi hyvin yksityisiin tietoihin, joten palvelun käyttöä täytyy voida rajoittaa käyttäjäkohtaisesti. Rajapintaa käytetään samoilla käyttäjätunnuksilla kuin muitakin järjestelmän osia. Hierarkisesti rakennettu tietokanta ja sen sisäiset pääsyoikeusrajoitteet huolehtivat siitä, että eri organisaatioiden käyttäjät eivät pääse käsiksi toisiin organisaatioihin. Tietyt käyttäjät on määritetty oman organisaationsa haltijoiksi, ja heillä on mahdollisuus hallita kaikkia oman organisaation käyttäjiä ja laitteita. Muut, ns. loppukäyttäjätilit, voivat hallita vain omaa tiliään ja omia laitteitaan. Tietokannan rajoitteet helpottavat rajapintapalvelun tekoa, sillä nämä rajoitteet toimivat näkymättömästi taustalla. Käyttäjien tunnistus tapahtuu HTTP-pyynnön yhteydessä käyttäen Basic Authentication tekniikkaa [8]. Tekniikan etuna on yksinkertainen toteutus sekä palvelimen että asiakasohjelman puolella. Haittapuolena on huono turvallisuus, ellei HTTP-yhteyttä ole salattu SSL-tekniikalla. Koska mysync-palvelut poikkeuksetta käyttävät salausta, tämä ei ole ongelma. 5.2 XML-skeema Jotta XML-rakenteita voidaan luoda asiakasohjelmissa, niiden rakenne ja sisältö täytyy määritellä tarkasti. Tämä rakenne määritetään XML-skeemassa. Skeema sisältää selityksen ja käyttöparametrit jokaiselle elementille, jota järjestelmän XML-rakenteissa käytetään. Skeeman määrittelyyn on erilaisia kieliä. DTD (Document Type Definition) on perinteinen määrittelykieli. Se ei kuitenkaan sisällä yhtä paljon määrittelymahdollisuuksia kuin XSD (XML Schema Document), jota W3C suosittelee. Tässä työssä skeema on määritetty XSD-kielellä. Koodiesimerkissä 2 on osa skeemasta. Osassa määritetään laitetyypin mahdolliset tiedot.
19 13 Koodiesimerkki 2 Osa XSD-tyyppisestä XML-skeemasta <xs:element name="deviceinfo"> <xs:complextype> <xs:all> <xs:element name="globalkey" type="xs:string" maxoccurs="1" minoccurs="0" /> <xs:element name="createtimestamp" type="timestamp" maxoccurs="1" minoccurs="0" /> <xs:element name="modifytimestamp" type="timestamp" maxoccurs="1" minoccurs="0" /> <xs:element name="cn" type="xs:string" maxoccurs="1" minoccurs="0" /> <xs:element name="displayname" type="xs:string" maxoccurs="1" minoccurs="0" /> <xs:element name="fqdn" type="xs:string" maxoccurs="1" minoccurs="0" /> <xs:element name="brand" type="xs:string" maxoccurs="1" minoccurs="0" /> <xs:element name="manufacturer" type="xs:string" maxoccurs="1" minoccurs="0" /> <xs:element name="modeltypename" type="xs:string" maxoccurs="1" minoccurs="0" /> <xs:element name="modeltypecode" type="xs:string" maxoccurs="1" minoccurs="0" /> <xs:element name="hardwareversion" type="xs:string" maxoccurs="1" minoccurs="0" /> <xs:element name="hardwaredate" type="timestamp" maxoccurs="1" minoccurs="0" /> <xs:element name="firmwareversion" type="xs:string" maxoccurs="1" minoccurs="0" /> <xs:element name="firmwaredate" type="timestamp" maxoccurs="1" minoccurs="0" /> <xs:element name="softwareversion" type="xs:string" maxoccurs="1" minoccurs="0" /> <xs:element name="softwaredate" type="timestamp" maxoccurs="1" minoccurs="0" /> <xs:element name="softwareupdated" type="timestamp" maxoccurs="1" minoccurs="0" /> <xs:element name="serialnumber" type="xs:string" maxoccurs="1" minoccurs="0" /> <xs:element name="devicetype" type="xs:string" maxoccurs="1" minoccurs="0" /> <xs:element name="owner" type="xs:string" maxoccurs="1" minoccurs="0" /> <xs:element name="manager" type="xs:string" maxoccurs="1" minoccurs="0" /> <xs:element name="description" type="xs:string" maxoccurs="1" minoccurs="0" /> <xs:element name="statustext" type="xs:string" maxoccurs="1" minoccurs="0" /> <xs:element name="seealso" type="xs:string" maxoccurs="1" minoccurs="0" /> <xs:element name="features" maxoccurs="1" minoccurs="0"> <xs:complextype> <xs:sequence> <xs:element ref="feature" maxoccurs="unbounded" /> </xs:sequence> </xs:complextype> </xs:element> <xs:element ref="mobiledevicecapabilities" maxoccurs="1" minoccurs="0" /> </xs:all> </xs:complextype> </xs:element> XStream-kirjasto, joka muuntaa Java-objektit automaattisesti XML-rakenteiksi, ei käytä skeemaa, mutta sen on silti tuotettava skeeman mukaisia rakenteita. Palvelua rakennettaessa ja ylläpidettäessä on siis huolehdittava XStreamin tuotosten ja skeeman yhtäpitävyydestä. 5.3 Resurssien toteutus Restlet-kehys sisältää reititinluokkia, joita käytetään URI:n tulkitsemiseen ja oikean resurssin löytämiseen. Reitittimet huolehtivat myös käyttäjän tunnistamisesta kun käytetään resursseja jotka vaativat erityisoikeuksia.
20 14 Jokaista resurssia varten on tehty oma luokka, joka sisältää metodit kaikkia haluttuja HTTP-komentoja varten Restlet-kehyksen käyttötavan mukaisesti. Metodit on @Delete jotka ilmaisevat Restlet-kehykselle metodien käyttötarkoituksen. Jos metodin on tarkoitus vastaanottaa tietoa HTTP-komennon lähettäjältä, metodille on määritetty parametri josta tiedon voi lukea. Restlet-kehys huolehtii parametrin arvon välittämisestä. Jos HTTP-komennon on tarkoitus palauttaa tietoa, se tapahtuu palauttamalla metodissa tieto upotettuna Representation-luokkaan. 5.4 Ohjeistus Ohjelmointirajapinta on tarkoitettu ensi kädessä ulkopuolisten ohjelmoijien käyttöön, joten heille on tarjottava riittävä ohjeistus sen käyttöön. RESTtyyppisten palveluiden käyttö ei ole mahdollista ilman kattavaa dokumentointia arkkitehtuurityylin vapaamuotoisuuden takia. Rajapinnan ohessa toteutettiin ohjesivusto (kuva 2), joka on saatavissa ohjelmointirajapintapalvelimelta. Sivusto sisältää myös esimerkkejä XMLviestirakenteista. Koska sivusto on rakennettu JSP-tekniikalla, niihin on voitu upottaa kutsuja suoraan rajapinnassa käytettäviin resursseihin ja XMLmuuntajiin. Sivustolla näytettävät XML-esimerkkilistaukset luodaan aina uudestaan reaaliajassa. Tämä takaa sen, että esimerkit ovat ajanmukaisia. Tällä tavoin toimittaessa muutokset järjestelmän muissa osissa eivät useinkaan vaadi muutosta itse dokumentaatioon. Myös ohjeissa näytettävät esimerkkilinkit sisältävät aina oikean palvelimen osoitteen. Koska rajapintapalvelua suoritetaan useilla eri palvelimilla, on ymmärrettävyyden kannalta tärkeää, että esimerkeissä on nykyisen palvelimen tunnus.
21 15 Kuva 2 Kuvakaappaus palvelun ohjeistuksesta
22 16 6 TESTAUS JA KÄYTTÖÖNOTTO 6.1 Testaus Rajapinnan käyttöä testattiin jatkuvasti uusia ominaisuuksia lisättäessä käyttäen RESTClient-sovellusta [9]. RESTClient on yleiskäyttöinen HTTP-protokollaan pohjautuvien palveluiden testaustyökalu (kuva 3). Se mahdollistaa pyyntöjen ominaisuuksien ja viestirungon määrittämisen ja palvelun vastauksen tarkastelun. Kuva 3 Kuvakaappaus RESTClient-sovelluksesta
23 17 Automaattista toiminnan testausta varten tehtiin myös joukko JUnityksikkötestejä. Näiden testien suorittaminen auttaa havaitsemaan ongelmia, joita voi tulla muutoksia tehdessä itse rajapintapalveluun tai sen käyttämiin sovelluskirjastoihin. 6.2 Palvelun käyttöönotto Rajapintapalvelu on liitetty mysync-järjestelmän asennuspaketin rakentavaan järjestelmään. Asennuspakettiin kootaan kaikki mysync-palvelun toteuttavat palvelut. Paketti luodaan ohjelmallisesti käyttäen Apache Ant -ohjelmistoa joka kääntää palveluiden lähdekoodin Java-tavukoodiksi ja kokoaa ne WARpaketeiksi joita voidaan suorittaa Servlet-palvelimessa. Toteutettu palvelu tulee käyttöön automaattisesti mysync-järjestelmän asennuksen tai päivityksen yhteydessä. Järjestelmän täydellinen asennus tapahtuu purkamalla asennuspaketti Linux Debian -palvelimelle ja suorittamalla asennuksen suorittava komento. Palveluiden osittaisen päivityksen voi tehdä käyttämällä Apache Tomcat - palvelimen hallintatyökaluja. Yksi työkaluista on palvelimen oma graafinen WWW-käyttöliittymä (kuva 4). Se mahdollistaa kaikkien servlet-palveluiden päivittämisen yhdellä WAR-paketilla.
24 18 Kuva 4 Apache Tomcat -palvelimen päivitystyökalu
25 19 7 YHTEENVETO Työssä suunniteltiin ja toteutettiin ohjelmointirajapinta, jonka tarkoitus on mahdollistaa mysync-arkkitehtuurin hallinnointi loppukäyttäjän ehdoilla. Rajapintaa käytetään jo sisäisesti palvelinten väliseen kommunikointiin. Työtä aloitettaessa tärkeää oli löytää oikeat työkalut projektin nopeaan käynnistämiseen. Sovelluskehys Restlet ja XML-muunnoskirjasto XStream hoitivat suuren osan tällaisen palvelun vaatimasta työstä. Rajapintaa on työn tekemisen jälkeen laajennettu sisältämään lisää toimintoja. Käytetty Restlet-sovelluskehys on mahdollistanut laajennusosien lisäyksen todella vaivattomasti. Tämä on osoittanut sovelluskehyksen valinnan osuneen oikeaan.
26 20 LÄHTEET [1] Fielding, R Architectural Styles and the Design of Network-based Software Architectures. [www-dokumentti] Saatavilla (luettu ) [2] Sandoval, J RESTful Java Web Services. Packt Publishing Ltd. [3] Singh, T REST vs. SOAP - The Right WebService [www-dokumentti] Saatavilla (luettu ) [4] Richardson L., Ruby S RESTful Web Services. O Reilly Media, Inc. [5] Burke, B RESTful Java with JAX-RS. O Reilly Media, Inc. [6] Restlet web framework. [www-dokumentti] Saatavilla (luettu ) [7] Bangalore, R Use XStream to serialize Java objects into XML. [www-dokumentti] Saatavilla (luettu ) [8] Berners-Lee, T., Fielding, R., Frystyk, H Hypertext Transfer Protocol -- HTTP/1.0 [www-dokumentti] Saatavilla (luettu ) [9] RESTClient. [www-dokumentti] Saatavilla: (luettu )
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,
in condition monitoring
Etäteknologioiden automaatiosovellukset Using e-speak e in condition monitoring tutkija professori Hannu Koivisto Sisältö Tausta Globaali kunnonvalvontajärjestelmä E-speak globaalissa kunnonvalvontajärjestelmässä
T-111.361 Hypermediadokumentin laatiminen. Sisältö. Tavoitteet. Mitä on www-ohjelmointi? Arkkitehtuuri (yleisesti) Interaktiivisuuden keinot
T-111.361 Hypermediadokumentin laatiminen -Ohjelmointi Peruskäsitys www-ohjelmoinnin kentästä Tekniikat interaktiivisuuden toteuttamiseen tekniikat tekniikat Tietokannat Juha Laitinen TKK/TML juha.laitinen@hut.fi
Tiedonsiirto- ja rajapintastandardit
Tiedonsiirto- ja rajapintastandardit Viitekehys Julkishallinnon perustietovarantojen rajapinnat (PERA) työryhmän tulokset valmiit syksyllä 2011 Määrittelee teknisen arkkitehtuuriratkaisun tietovarantojen
Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A4000 - Kandidaatintyö ja seminaari
LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A4000 - Kandidaatintyö ja seminaari Alkuraportti Avoimen lähdekoodin käyttö WWW-sovelluspalvelujen toteutuksessa Lappeenranta, 30.3.2008,
REST an idealistic model or a realistic solution?
REST an idealistic model or a realistic solution? 17.10.2006 Jari Aarniala jari.aarniala@cs.helsinki.fi Johdanto Representational State Transfer, eli REST Arkkitehtuurinen tyyli hajautetuille (hypermedia)järjestelmille
Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä
www.niksula.cs.hut.fi/~jjkankaa// Demosovelluksen tekninen määrittely v. 0.6 Päivitetty 11.12.2000 klo 20:26 Mickey Shroff 2 (12) Dokumentin versiohistoria Versio Päivämäärä Tekijä / muutoksen tekijä Selite
ZENworks Application Virtualization 11
ZENworks Application Virtualization 11 ZENworks / perinteinen asennus ZENworks virtualisointi Ei erillistä asennusta Ei vaadita erilisiä oikeuksia Oletusasetukset mukana Eri versiot samanaikaisesti Sama
Web Service torilla tavataan!
Web Service torilla tavataan! Jari Putula Avarea Oy COPYRIGHT BY AVAREA 2009 1 Google Trends COPYRIGHT BY AVAREA 2009 2 1 1. Mahdollistajat 2. Web service? 3. KISS 4. Miksi? 5. Analogia 6. Ajax 7. Esimerkki
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
HSMT J2EE & EJB & SOAP &...
HSMT J2EE & EJB & SOAP &... Ville Leppänen HSMT, c Ville Leppänen, IT, Turun yliopisto, 2011 p.1/15 Missä mennään... 1. Johdanto (1h) 2. Säikeet (2h) 3. Samanaikaisuudesta (2h) 4. Hajautetuista sovelluksista
Hintatiedotus ja tietojen välitys. Loppuraportti
Hintatiedotus ja tietojen välitys Loppuraportti Henkilöliikenne 18. marraskuuta 2002 1 Lähtökohdat VR Henkilöliikenteellä on käytössä Journey Planner reitinsuunnittelupalvelu. Palvelua käyttävät matkustajat
Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS Ti Kandidaatintyö ja seminaari
LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS Ti5004000 - Kandidaatintyö ja seminaari Alkuraportti Avoimen lähdekoodin käyttö WWW-sovelluspalvelujen toteutuksessa Lappeenranta, 4.6.2007,
Visma Software Oy
pidättää itsellään oikeuden mahdollisiin parannuksiin ja/tai muutoksiin tässä oppaassa ja/tai ohjelmassa ilman eri ilmoitusta. Oppaan ja siihen liittyvän muun materiaalin kopiointi on kielletty ilman :n
EMVHost Online SUBJECT: EMVHOST ONLINE CLIENT - AUTOMAATTISIIRROT COMPANY: EMVHost Online Client sovelluksen käyttöohje AUTHOR: DATE: 15.03.
EMVHost Online SUBJECT: COMPANY: COMMENTS: AUTHOR: EMVHOST ONLINE CLIENT - AUTOMAATTISIIRROT NETS OY EMVHost Online Client sovelluksen käyttöohje NETS OY DATE: 15.03.2011 VERSION: 1.0 1 SISÄLLYS SISÄLLYS...
Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä:
Linux-harjoitus 6 Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä: http://www.mysql.com/, MySQL-tietokantaohjelman kotisivu. http://www.mysql.com/doc/en/index.html,
XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy
IBM Collaboration Forum ٨.٣.٢٠١١ XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy ٢٠١١ IBM Corporation Domino-sovelluskehitys Nopea kehitysympäristö (Rapid application development,
Visma Nova Webservice Versio 1.1 /
Visma Nova Webservice Versio 1.1 / 31.10.2018 pidättää itsellään oikeuden mahdollisiin parannuksiin ja/tai muutoksiin tässä oppaassa ja/tai ohjelmassa ilman eri ilmoitusta. Oppaan ja siihen liittyvän muun
KYMENLAAKSON AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma / Tietoverkkotekniikka. Joni Korjala APACHE WWW-PALVELIN Seminaarityö 2012
KYMENLAAKSON AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma / Tietoverkkotekniikka Joni Korjala APACHE WWW-PALVELIN Seminaarityö 2012 SISÄLLYS 1 JOHDANTO 3 2 WWW-PALVELIMEN TOIMINTA 4 3 OMINAISUUDET
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
ELM GROUP 04. Teemu Laakso Henrik Talarmo
ELM GROUP 04 Teemu Laakso Henrik Talarmo 23. marraskuuta 2017 Sisältö 1 Johdanto 1 2 Ominaisuuksia 2 2.1 Muuttujat ja tietorakenteet...................... 2 2.2 Funktiot................................
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
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
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
Pilottipalvelun esittely johtopäätökset
1 Pilottipalvelun esittely johtopäätökset Paikkatiedot palveluväylässä -loppuseminaari Paikkatietoverkoston kevätseminaari 18.5.2016 Pekka Latvala, Jari Reini Pilottipalvelu Pilottipalvelun lähtöasetelmana
REST-arkkitehtuurityylin käyttö web-rajapinnoissa
Sami Kankaanpää REST-arkkitehtuurityylin käyttö web-rajapinnoissa Opinnäytetyö Kevät 2016 SeAMK Tekniikka Tietotekniikan tutkinto-ohjelma 2 SEINÄJOEN AMMATTIKORKEAKOULU Opinnäytetyön tiivistelmä Koulutusyksikkö:
Rajapintapalvelujen INSPIRE-yhteensopivuus
Rajapintapalvelujen INSPIRE-yhteensopivuus Paikkatietoinfran hyödyntäminen koulutukset 22.11. Jani Kylmäaho 1 Miksi? Sisältö Yleisimmät ongelmat rajapintapalvelujen yhteensopivuudessa WMS- ja WFS-standardeihin
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
Tekninen suunnitelma - StatbeatMOBILE
Tekninen suunnitelma - StatbeatMOBILE Versio Päivämäärä Henkilö Kuvaus 1.0 13.12.2013 Pöyry Alustava rakenne ja sisältö 1.1 22.12.2013 Pöyry Lisätty tekstiä ilmoituksiin, turvallisuuteen ja sisäiseen API:in
Dokumentin nimi LOGO:) Tampereen teknillinen yliopisto. Ryhmä XXX: Projektiryhmän nimi Projektin nimi
Tampereen teknillinen yliopisto Ohjelmistotekniikan laitos OHJ-3500 Ohjelmistotuotannon projektityö LOGO:) Ryhmä XXX: Projektiryhmän nimi Projektin nimi Dokumentin nimi Jakelu: (Ryhmä) (Kurssihenkilökunta)
13/20: Kierrätys kannattaa koodaamisessakin
Ohjelmointi 1 / syksy 2007 13/20: Kierrätys kannattaa koodaamisessakin Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy
Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.3.0
Toukokuu 2013 1 (10) Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.3.0 Päivitysohje Copyright Aditro 2013 Toukokuu 2013 2 (10) Sisällysluettelo 1. Tehtävät ennen versiopäivitystä... 3 1.1. Ohjelmistomuutosten
Integrointi. Ohjelmistotekniikka kevät 2003
Integrointi Ohjelmistotekniikka kevät 2003 ERP (Toiminnanohjausjärjestelmä) Myynti Henkilöstö, palkanlaskenta Kirjanpito Myynti Myyjät Extranet Tietovarasto Laskutus, reskontrat Asiakas ERP Asiakasrekisteri
Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.4.0
Toukokuu 2014 1 (11) Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.4.0 Päivitysohje Toukokuu 2014 2 (11) Sisällysluettelo 1. Tehtävät ennen versiopäivitystä... 3 1.1. Ohjelmistomuutosten luku...
W3C-teknologiat ja yhteensopivuus
W3C-teknologiat ja yhteensopivuus Ossi Nykänen Tampereen teknillinen yliopisto (TTY), Digitaalisen median instituutti (DMI), Hypermedialaboratorio W3C Suomen toimisto Esitelmä Hyvin lyhyt versio: W3C asettaa
Katselupalvelujen INSPIRE-yhteensopivuuden testaus
Katselupalvelujen INSPIRE-yhteensopivuuden testaus Infrastruktuuri-ryhmä 19.10.2011 Jani Kylmäaho 1 Miksi? Sisältö Yleisimmät ongelmat rajapintapalvelujen yhteensopivuudessa WMS-standardiin Yleisimmät
10 Nykyaikainen WWW-arkkitehtuuri
10 Nykyaikainen WWW-arkkitehtuuri è è è 10 Nykyaikainen WWW-arkkitehtuuri WWW on ylivoimaisesti suosituin hypertekstijärjestelmä. Käydään seuraavaksi läpi nykyaikaisen WWW-arkkitehtuurin perusteet. Vuonna
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
Koodistoeditorin toteutuksen lähtökohtia: KaPA-koodistopalvelu ja REST-rajapinnat
Koodistoeditorin toteutuksen lähtökohtia: KaPA-koodistopalvelu ja REST-rajapinnat Yhteinen tiedon hallinta (YTI) -hanke Antti Tohmo antti.tohmo@gofore.com Kansallinen koodistoeditori -työpaja 6.9.2017
Tekninen suunnitelma - StatbeatMOBILE
Tekninen suunnitelma - StatbeatMOBILE Versio Päivämäärä Henkilö Kuvaus 1.0 13.12.2013 Pöyry Alustava rakenne ja sisältö 1.1 22.12.2013 Pöyry Lisätty tekstiä ilmoituksiin, turvallisuuteen ja sisäiseen API:in
Tietokanta.java Luokka tarjoaa välineet tietokannan lukemiseen. Haetuista tiedoista muodostetaan kurssi- ja opetus-olioita.
Arkkitehtuurikuvaus Käytössä olevat java-luokat: Kansio: /WEB_INF/classes/ - käännetyt luokat Kansio: /WEB_INF/src/ - lähdekoodi custom_pojos: Kurssi.java Java-luokka, jonka sisältö vastaa tietokannassa
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
Vaatimusmäärittely Ohjelma-ajanvälitys komponentti
Teknillinen korkeakoulu 51 Vaatimusmäärittely Ohjelma-ajanvälitys komponentti Versio Päiväys Tekijä Kuvaus 0.1 21.11.01 Oskari Pirttikoski Ensimmäinen versio 0.2 27.11.01 Oskari Pirttikoski Lisätty termit
AJAX-konsepti AJAX. Asynkronisuus. Nykyisten web-ohjelmien ongelmia. Asynchronous JavaScript And XML
AJAX-konsepti AJAX Asynchronous JavaScript And XML Viimeisin muoti-ilmiö web-ohjelmoinissa, termi Ajax tuli käyttöön vuoden 2005 aikana Joukko teknologioita, joiden avulla voidaan toteuttaa uudenlaisen
Koodistopalvelun REST-rajapinnat
Koodistopalvelun REST-rajapinnat Yleiset tiedot Swagger Kuvaus Yhteiset kyselyparametrit (Query Parameters) Yhteiset otsikkoparametrit (HTTP Headers) Yhteiset vastauskoodit (HTTP Response Codes) Autentikointi
Aditro Tikon ostolaskujen käsittely versio 6.2.0
Lokakuu 2012 1 (9) Aditro versio 6.2.0 Päivitysohje Lokakuu 2012 2 (9) Sisällysluettelo 1. Tehtävät ennen versiopäivitystä... 3 1.1. Ohjelmistomuutosten luku... 3 1.2. Aditro Pankkipalvelut yhteensopiva
JWT 2016 luento 11. to 21.4.2016 klo 14-15. Aulikki Hyrskykari. PinniB 1097. Aulikki Hyrskykari
JWT 2016 luento 11 to 21.4.2016 klo 14-15 Aulikki Hyrskykari PinniB 1097 1 Viime luennolla o AJAX ja JSON, harjoitustyön tehtävänanto, vierailuluento avoimesta datasta Tänään o APIt rajapinnoista yleisesti
Case TUHTI. Projektin tunnuslukuja. ! Suuri perusjärjestelmäuudistus! Työt alkoivat kesällä 1999. ! Java luokkia n. 5000
Case TUHTI 17.12.2002 1 TietoEnator 2002 Projektin tunnuslukuja! Suuri perusjärjestelmäuudistus! Työt alkoivat kesällä 1999! Otettu tuotantokäyttöön syksyllä 2001! Proof of Concept (5 henkilöä 4 kk) ->
KIURU Tietotekniikan sovellusprojekti
KIURU Tietotekniikan sovellusprojekti Toni Hilpinen Marko Koivuniemi Jussi Mäkinen Miika Nurminen DOKUMENTIN NIMI dd.mm.yyyy Jyväskylän yliopisto Tietotekniikan laitos Kiuru-projektin tietoja Tekijät:
Taustaa. CGI-ohjelmointi
Taustaa CGI-ohjelmointi CGI = Common Gateway Interface Hyvin yksinkertainen ja helppo tapa toteuttaa dynaamisuutta ja interaktivisuutta htmldokumentteihin Kehitetty tiedon siirtoon palvelimen ja asiakasselaimen
Tuomiorekisterin ratkaisuhaun kehittäminen
25.5.2012 Sivu 1 Muutoshistoria Versio Päiväys Tekijä Kuvaus 0.1 15.2.2012 NMu Luonnos korjattujen ratkaisujen tietojen välittämisen muutoksesta 0.2 12.3.2012 NMu Lisätty uusia metatietokenttiä 0.3 25.5.2012
XML johdanto, uusimmat standardit ja kehitys
johdanto, uusimmat standardit ja kehitys Ossi Nykänen Tampereen teknillinen yliopisto (TTY), Digitaalisen median instituutti (DMI), W3C Suomen toimisto Esitelmä Hyvin lyhyt versio: on W3C:n suosittama
Verkkopalveluiden saavutettavuus
Verkkopalveluiden saavutettavuus Puhuja: Ossi Nykänen Tampereen teknillinen yliopisto, Hypermedialaboratorio, W3C Suomen toimisto Paikka: Helsinki, Tieteiden talo, 24.3.2011 Johdanto Verkkopalvelun saavutettavuus
Arkkitehtuuri. Ylätason sovellusarkkitehtuuri
Arkkitehtuuri Termieditorin käyttö vaatii kirjautumisen. Peruskäyttäjälle myönnetään erikseen aineistokohtaisia luku- ja muokkausoikeuksia. Järjestelmän ylläpitäjä (admin) saa ylläpitää kaikkia aineistoja.
LINUX-HARJOITUS, MYSQL
LINUX-HARJOITUS, MYSQL Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä: http://www.mysql.com/, MySQL-tietokantaohjelman kotisivu. http://www.mysql.com/doc/en/index.html,
Kanta PHR:n CapabilityStatement ja REST-API. Eeva Turkka
Kanta PHR:n CapabilityStatement ja REST-API Eeva Turkka PHR:n kaksi osaa: tietosisältö ja käyttöluvat Resurssipalvelin FHIR REST-rajapinnat CapabilityStatement kuvaa toiminnot Resurssisäilö Auktorisointipalvelin
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
MOBISITE-TYÖKALUN SISÄLTÄMÄT TOIMINNOT
MOBISITE-TYÖKALU MobiSite on työkalu matkapuhelimeen soveltuvan mobiilisivuston rakentamiseen. AIMO-järjestelmän jatkuvasti päivittyvä päätelaitetunnistus tunnistaa useimmat puhelinmallit ja mukauttaa
Tikon Ostolaskujenkäsittely versio 6.1.2 SP1
Toukokuu 2012 1 (14) Tikon Ostolaskujenkäsittely versio 6.1.2 SP1 Asennusohje Toukokuu 2012 2 (14) Sisällysluettelo 1. Vaatimukset palvelimelle... 3 1.1..NET Framework 4.0... 3 1.2. Palvelimen Internet
Rakenteisen oppimateriaalin tuottaminen verkossa esimerkki Rhaptos. Antti Auer Koordinaattori, HT Jyväskylän yliopisto Virtuaaliyliopistohanke
Rakenteisen oppimateriaalin tuottaminen verkossa esimerkki Rhaptos Antti Auer Koordinaattori, HT Jyväskylän yliopisto Virtuaaliyliopistohanke Rakenteisuus kahdella tasolla Oppimisaihiot ( Learning Objects
3 Verkkosaavutettavuuden tekniset perusteet
3 Verkkosaavutettavuuden tekniset perusteet Saavutettavuuden toteuttaminen edellyttää lähtökohtaisesti tietoa laitteista ja sovelluksista, käyttäjistä ja käyttötavoista, sekä tekniikasta. Tekniikasta on
Web-palveluiden toteutus älykortille
älykortille Jukka Hänninen Valvoja: Prof. Raimo Kantola Ohjaaja: DI Kaj Höglund, Elisa Oyj Sisältö Työn tausta Standardointi Älykortin web-palvelin Toteutus Hyödyt ja mahdollisuudet Kohdatut ongelmat Lopputulos
REST rajapintana mobiilikehityksessä
REST rajapintana mobiilikehityksessä Django & WP7 Jonne Räsänen 2011 jonne.rasanen@jyu.fi Case iscope Hälytyspalvelu Web-palvelu Mobiilisovellus REST (REpresentational State Transfer) Aikojakin vanhempi
Jussi Klemola 3D- KEITTIÖSUUNNITTELUOHJELMAN KÄYTTÖÖNOTTO
Jussi Klemola 3D- KEITTIÖSUUNNITTELUOHJELMAN KÄYTTÖÖNOTTO Opinnäytetyö KESKI-POHJANMAAN AMMATTIKORKEAKOULU Puutekniikan koulutusohjelma Toukokuu 2009 TIIVISTELMÄ OPINNÄYTETYÖSTÄ Yksikkö Aika Ylivieska
KODAK EIM & RIM VIParchive Ratkaisut
ATK Päivät 2006 Mikkeli KODAK EIM & RIM VIParchive Ratkaisut 29.-30.5. 2006 Stefan Lindqvist HCIS Sales Specialist Health Care Information Systems Kodak Health Group 3/24/2013 1 Arkistoinnin haasteita
ASP.NET Web API 2:ta hyödyntävä Angular 4 -sovellus
Atte Aspiola ASP.NET Web API 2:ta hyödyntävä Angular 4 -sovellus Metropolia Ammattikorkeakoulu Insinööri (AMK) Tietotekniikan koulutusohjelma Insinöörityö 13.9.2017 Tiivistelmä Tekijä(t) Otsikko Sivumäärä
Viimeinen rajoite (hypermedia as the engine of application state) tarkoittaa käytännössä sitä, että palvelimelta saadut vastaukset sisältävät URIt
195 ReST on arkkitehtuurityyli, joka tähtää yhteentoimivuuden säilyttämiseen sellaisissa hajautetuissa (hypermedia)järjestelmissä, joissa eri osapuolet kehittyvät ja muuttuvat itsenäisesti toisistaan riippumatta.
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
Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1
3. Komponentit ja rajapinnat 3.1 Komponenttien idea: ohjelmistotuotannon rationalisointi 3.2 Mikä on ohjelmistokomponentti? 3.3 Komponentit ohjelmistoyksikköinä 3.4 Rajapinnat 3.6 Komponenttien räätälöinti
Hallintatyökaluja Fujitsu-työasemille
Hallintatyökaluja Fujitsu-työasemille O-P Perasto Fujitsu Finland Systems Specialist Product Business Unit Copyright 2017 2019 FUJITSU Hallintatyökalut 1. DeskView Client 2. DeskUpdate 3. DeskUpdate Manager
X-Road ja WFS-rajapinnat, uudet APIt. Pekka Latvala , KaPA ja paikkatietoinfrastruktuurin kärkiteeman työpaja
X-Road ja WFS-rajapinnat, uudet APIt Pekka Latvala 20.11.2015, KaPA ja paikkatietoinfrastruktuurin kärkiteeman työpaja Agenda Palveluväylä Oman palvelun liittäminen palveluväylään Sovitinpalvelu -sanomat
Maventa Connector Käyttöohje
Maventa Connector Käyttöohje 17.4.2015 Sisällys 1. Esittely... 2 1.1. Käytön edellytykset... 2 1.2. Tuetut aineistomuodot... 2 2. Asennustiedosto... 3 2.1. Sisäänkirjautuminen... 7 3. Asetuksien määrittäminen...
Paikkatiedot palveluväylässä kehityksen tilanne Väylän varrelta - Kansallisen palveluväylän kehitystilanne -seminaari
1 Paikkatiedot palveluväylässä kehityksen tilanne Väylän varrelta - Kansallisen palveluväylän kehitystilanne -seminaari Jari Reini 13.05.2015 Hankkeen työkokonaisuudet 3 Pilotin suunnittelu ja kehittäminen
Kanta PHR:n CapabilityStatement ja REST-API. Eeva Turkka
Kanta PHR:n CapabilityStatement ja REST-API Eeva Turkka Omatietovaranto, pääelementit Sovellukset sosiaali- ja terveydenhuollon ammattilaisille Sovellukset kansalaisille FHIR rajapinnat Omatietovarannossa
Johdatus rakenteisiin dokumentteihin
-RKGDWXVUDNHQWHLVLLQGRNXPHQWWHLKLQ 5DNHQWHLQHQGRNXPHQWWL= rakenteellinen dokumentti dokumentti, jossa erotetaan toisistaan dokumentin 1)VLVlOW, 2) UDNHQQHja 3) XONRDVX(tai esitystapa) jotakin systemaattista
The OWL-S are not what they seem
The OWL-S are not what they seem...vai ovatko? Verkkopalveluiden koostamisen ontologia OWL-S Seminaariesitelmä 15.4.2013 Emilia Hjelm Internet on hankala Nykyinternet on dokumenttien verkko Asiat, joita
Outlookin konfigurointi. Huoltamosähköposti Sonerahosted
Outlookin asennusohje SoneraHosted/Toni Einola/8.5.2009 Outlookin konfigurointi Huoltamosähköposti Sonerahosted 1. Yleistä Teboilin huoltamosähköpostia voidaan käyttää selaimen ja älypuhelimen ohella myös
Toimintaympäristön kuvaus. LTC-Otso Myyjän työkalu (POC)
LTC-Otso Myyjän työkalu (POC) Toimintaympäristön kuvaus 21 toukokuu, 2015 Sisältö 1 Johdanto... 3 1.1 Dokumentin tavoite... 3 1.2 Dokumentin yleiskuvaus... 3 2 Järjestelmälle asetetut vaatimukset... 3
Laitteessa tulee olla ohjelmisto tai uudempi, tarvittaessa päivitä laite
TW-EAV510: PORTTIOHJAUS (VIRTUAL SERVER) ESIMERKISSÄ VALVONTAKAMERAN KYTKEMINEN VERKKOON Laitteessa tulee olla ohjelmisto 5.00.49 tai uudempi, tarvittaessa päivitä laite OPERAATTORIN IP---OSOITE - Jotta
Android ohjelmointi. Mobiiliohjelmointi 2-3T5245
Android ohjelmointi Mobiiliohjelmointi 2-3T5245 Mikä on Android? Linux kernelin päälle rakennettu, Googlen kehittämä sovelluspino mobiilisovelluksiin Erillinen versio puhelimelle ja taulutietokoneille
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,
VTJkysely-palvelu. Sovelluskyselyiden rajapintakuvaus
VTJkysely-palvelu Sovelluskyselyiden rajapintakuvaus 3.9.2014 2 (6) 3.9.2014 VERSION HALLINTA versionro mitä tehty pvm/henkilö 1.4 päivitetty yhteystiedot 3.9.2014/Kaija Riihijärvi 1.3 päivitetty yhteystiedot
Työasemien hallinta Microsoft System Center Configuration Manager 2007. Jarno Mäki Head of Training Operations M.Eng, MCT, MCSE:Security, MCTS
Työasemien hallinta Microsoft System Center Configuration Jarno Mäki Head of Training Operations M.Eng, MCT, MCSE:Security, MCTS IT Education Center Agenda Yleistä työasemien hallinnasta Työasemien hallinta
Juha Peltomäki JAMK/Teknologia
Juha Peltomäki JAMK/Teknologia Web vuonna 2009 Web on nyt n. 18 vuotta vanha ilmiö Muistatteko Internet-kuplan vuonna 2000? Internetin kaupallistuminen käynnistyi vuonna 1996 (ebay ja Amazon) Amazon saavutti
Ylläpitodokumentti. Boa Open Access. Helsinki 2.5.2006 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos
Ylläpitodokumentti Boa Open Access Helsinki 2.5.2006 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Ilmari
582203 Tietokantasovellus (4 op) - Web-sovellukset ja niiden toteutus
582203 Tietokantasovellus (4 op) - Web-sovellukset ja niiden toteutus Sisältö Mikä on web-sovellus? Selaimen rooli web-sovelluksessa Palvelimen rooli web-sovelluksessa Aineistopyynnöt Tiedon välittäminen
HTTP-välityspalvelimen käyttö tapahtumien keräämiseen
HTTP-välityspalvelimen käyttö tapahtumien keräämiseen Tero Tähtinen Teknillinen korkeakoulu Tietoliikenneohjelmistojen ja multimedian laboratorio Diplomityöesitelmä 29.11.2004 1 Johdanto Diplomityössä
ETÄTERMINAALIYHTEYS SELAIMELLA
Opinnäytetyö (AMK) Tietotekniikan koulutusohjelma Sulautetut ohjelmistot 2017 Akseli Aarnio ETÄTERMINAALIYHTEYS SELAIMELLA OPINNÄYTETYÖ (AMK) TIIVISTELMÄ TURUN AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma
Javan asennus ja ohjeita ongelmatilanteisiin
Javan asennus ja ohjeita ongelmatilanteisiin Javaa tarvitaan Fivaldin Sovellusikkunan alaisiin sovelluksiin, jotka käyttävät Oracle Forms -tekniikkaa. Visma Fivaldin osalta suosittelemme aina käyttämään
JReleaser Yksikkötestaus ja JUnit. Mikko Mäkelä 6.11.2002
JReleaser Yksikkötestaus ja JUnit Mikko Mäkelä 6.11.2002 Sisältö Johdanto yksikkötestaukseen JUnit yleisesti JUnit Framework API (TestCase, TestSuite) Testien suorittaminen eri työkaluilla Teknisiä käytäntöjä
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.
DIPLOMITYÖ ARI KORHONEN
DIPLOMITYÖ ARI KORHONEN TEKNILLINEN KORKEAKOULU Diplomityö Tietotekniikan osasto 20.5.1997 Ari Korhonen WORLD WIDE WEB (WWW) TIETORAKENTEIDEN JA ALGORITMIEN TIETOKONEAVUSTEISESSA OPETUKSESSA Työn valvoja
Käyttöohje. Ticket Inspector. Versio 1.0. Sportum Oy
Käyttöohje Ticket Inspector Versio 1.0 Sportum Oy 10.5.2017 Sivu 1 Sisällysluettelo 1. Yleistä... 2 2. Kirjautuminen ensimmäisellä kerralla / PIN-koodin unohtuessa... 3 3. Tunnistautuminen... 4 4. Päänäkymä...
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
Google Cloud Print -opas
Google Cloud Print -opas Versio 0 FIN Kuvakkeiden selitykset Tässä käyttöoppaassa käytetään seuraavaa kuvaketta: Käyttövinkit kertovat, miten eri tilanteissa on toimittava tai miten kutakin toimintoa voi
Ohjelmiston toteutussuunnitelma
Ohjelmiston toteutussuunnitelma Ryhmän nimi: Tekijä: Toimeksiantaja: Toimeksiantajan edustaja: Muutospäivämäärä: Versio: Katselmoitu (pvm.): 1 1 Johdanto Tämä luku antaa yleiskuvan koko suunnitteludokumentista,
Ylläpitodokumentti. Ohjelmistotuotantoprojektin tietojärjestelmä OhtuTie
Ylläpitodokumentti Ohjelmistotuotantoprojektin tietojärjestelmä OhtuTie Helsinki 16.7.2004 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti
8. Näppäimistöltä lukeminen 8.1
8. Näppäimistöltä lukeminen 8.1 Sisällys Arvojen lukeminen näppäimistöltä Java-kielessä. In-luokka. In-luokka, käännös ja tulkinta Scanner-luokka. 8.2 Yleistä Näppäimistöltä annettujen arvojen (syötteiden)