WOA JA REST 1(16) Representational State Transfer (REST) ja Web-suuntautunut arkkitehtuuri (WOA) arkkitehtuurityylinä
|
|
- Markku Ahola
- 8 vuotta sitten
- Katselukertoja:
Transkriptio
1 WOA JA REST 1(16) Representational State Transfer (REST) ja Web-suuntautunut arkkitehtuuri (WOA) arkkitehtuurityylinä
2 WOA JA REST 2(16) TIIVISTELMÄ Ohjelmistoarkkitehtuuri voidaan määritellä muun muassa arkkitehtuuristen elementtien, kuten komponenttien (component), liittimien (connector) ja datan (data) konfiguraatioksi, joiden keskinäisiä suhteita on rajoitettu tarkoituksena saavuttaa tiettyjä arkkitehtuurisia ominaisuuksia (architectural properties). Arkkitehtuurityylit tarjoavat joukon rajoitteita, joiden tarkoituksena on mahdollistaa ohjelmistolle esitettyjen vaatimusten toteutuminen. Arkkitehtuureja voidaan suunnitella valmiista komponenteista, tai rajoittamalla arkkitehtuuristen elementtien keskinäisiä suhteita. Perinteisessä palvelusuuntautuneessa arkkitehtuurissa (Service Oriented Architecture, SOA) palvelut toteutetaan Web-palveluina (Web Services), SOAP (Simple Object Access Protocol)- ja HTTP (Hypertext Transfer Protocol)- protokollaa käyttäen. SOA-mallin mukaisilla Web-palveluilla on yksilöllinen WSDL (Web Service Description Language)-, eli XML-kuvauksen mukainen kutsurajapinta, joka palvelun käyttäjän on tunnettava palvelukutsun suorittaakseen. REST (Representational State Transfer) koostuu joukosta rajoitteita, jotka on valittu soveltuvin osin muista arkkitehtuurityyleistä, sekä komponenttien kommunikointirajapintaa koskevista yhtenäisen rajapinnan lisärajoitteista. RESTin rajoitteet ovat asiakas-palvelin, tilattomuus, välimuisti, ladattava koodi ja yhtenäinen rajapinta. RESTin ensimmäinen versio kehitettiin Fielding julkaisi arkkitehtuurityyleihin liittyvän väitöskirjan 2000, jossa REST esiteltiin ja sitä sovellettiin nykyaikaiseen Web-arkkitehtuuriin, kuten HTTP (Hypertext Transfer Protocol)- protokollaan ja URL (Uniform Resource Locator) -osoitteisiin. Keskeisten RESTin yhtenäisen rajapinnan (Uniform interface) rajoitteiden mukaisesti kaikki palvelut nähdään resursseina (Resource), joilla on yksilöitävissä oleva URL tunniste ja yhtenäinen (Uniform) kutsurajapinta. Tunnetuin esimerkki REST-rajoitteilla toteutetusta hypermediajärjestelmästä on WWW (World Wide Web). Web-suuntautunut arkkitehtuuri (Web oriented architecture, WOA) on palvelusuuntautuneen arkkitehtuurityylin (Service Oriented Architecture, SOA) alityyli (Substyle). WOA on konsulttiyhtiö Gartnerin nimitys rajapintatason hybridiarkkitehtuurityylille, joka keskeisiltä osin noudattaa Roy Fieldingin väitöskirjassa (v. 2000) julkaisemia RESTin asiakas ja palvelinkomponentin välisiä yhtenäisen rajapinnan (Uniform Interface) rajoitteita. WOA lisää RESTin rajoitteisiin sovellusriippumattomuuden (Application Neutrality). RESTin tarkoituksena on esittää rajoitteet, jotka soveltuvat erityisesti hajautettujen hypermedia (Web) järjestelmien toteutukseen. Työ tarkastelee arkkitehtuurityylejä ja Web-palvelujen tuottamista REST- ja WOAperiaatteiden mukaisesti, sekä esittelee lyhyesti RESTin mukaisten järjestelmien toteuttamiseen soveltuvia työkaluja.
3 WOA JA REST 3(16) SISÄLLYS 1. Johdanto Arkkitehtuurityylit REST Asiakas-Palvelin Välimuisti Kerroksittainen Ladattava koodi Tilattomuus Yhtenäinen Rajapinta Yhtenäisen rajapinnan rajoitteet ja resurssitunnisteet Resurssien muokkaaminen esitystavan kautta Itsekuvaavat viestit Hypermedia sovelluksen tilakoneena REST- rajapintojen kuvaaminen Web- suuntautunut arkkitehtuurityyli Kuva2 SOA, WOA ja REST Työkalutuki YHTEENVETO LÄHTEET... 15
4 4(16) 1. Johdanto Arkkitehtuurityylejä käyttämällä voidaan ohjelmiston laatuominaisuuksiin vaikuttaa kehityksen aikaisessa vaiheessa. Arkkitehtuurityylit tarjoavat joukon rajoitteita, joiden tarkoituksena on mahdollistaa ohjelmistolle esitettyjen vaatimusten toteutuminen. Rajoitteet ovat siten suhteellisia, että yhden rajoitteen lisääminen saattaa heikentää toista rajoitetta tai rajoitteen ominaisuutta (Aspect of Property) [FIE00]. Rajoitteet on valittava ohjelmiston nykyiset ja tulevat vaatimukset, sekä toimintaympäristö huomioiden. Tunnetut arkkitehtuurityylit sisältävät joukon rajoitteita ja dokumentoituja suunnittelupäätöksiä. REST (Representational State Transfer on hybridiarkkitehtuurityyli, jonka rajoitteet on valittu muista arkkitehtuurityyleistä ja lisätty niihin yhtenäisen asiakas-palvelin kommunikointirajapinnan rajoitteet. REST tarjoaa arkkitehtuuristen rajoitteiden joukon, joka sovellettuna kokonaisuutena tuo järjestelmään ominaisuuksina (Properties) komponenttien interaktioiden skaalautuvuutta, rajapintojen yleisyyttä, komponenttien itsenäistä kehitettävyyttä ja mahdollistaa välittäjäkomponenttien käytön (Intermediaries) poistamaan interaktioiden latenssia, varmistamaan tietoturvaa ja kapseloimaan perinnejärjestelmiä (Legacy Systems) [FIE00,FT02]. Web-palveluiden kehittäjät suosivat helppokäyttöisten REST-rajapintojen käyttöä. Amazon julkaisi tiedon, että REST- rajapintoja käytetään 85%:sti, kun vaihtoehtona ovat perinteiset Web-palvelujen SOAP:n (Simple Object Access Protocol)- mukaiset rajapinnat 1. Liiketoimintamalleja (Business Model) kehitetään, joissa koosteisten ns. Web 2.0 Mashup -sovellusten toteuttajat liittävät omaan sovellukseensa esimerkiksi Amazon:in rajapintoja ja veloittamalla Amazonin avulla tuotetusta kokonaispalvelusta välityspalkkioita loppukäyttäjiltä. ProgrammableWeb:in tilastojen mukaan RESTrajapintoja käytetään 65 %:sti, kun vertailukohtana on SOAP- rajapinnat (21%) [PRG09, ]. Tilastoissa on huomioitava, että monet Web-palvelut markkinoivat tarjoavansa REST- rajapintoja, vaikka RESTin periaatteita ei ole noudatettu kuin osittain. Seurantajakson aikana ( ) REST-palveluiden käyttö lisääntyi 2% [PRG09]. Vaikka RESTin periaatteet ovat yksinkertaisia, on niiden soveltaminen ja ymmärtäminen johdonmukaisesti ollut vaikeaa ja tämä on johtanut Web-sovelluksiin, jotka eivät ole hyötyneet RESTin rajoitteiden tuomista ominaisuuksista.[egs07]. 2. Arkkitehtuurityylit Arkkitehtuurin suunnittelu on tärkeä vaihe ohjelmiston ja yritysarkkitehtuurin (Enterprice Architecture) suunnittelua. Ohjelmistoarkkitehtuurista on kirjallisuudessa useita määritelmiä. Fielding määrittelee ohjelmistoarkkitehtuurin mm. arkkitehtuuristen elementtien, kuten komponenttien (Component), liittimien (Connector) ja datan (Data) konfiguraatioksi, joiden keskinäisiä suhteita on rajoitettu tarkoituksena saavuttaa tiettyjä arkkitehtuurisia ominaisuuksia (Architectural Properties) [FIE00,7]. 1
5 5(16) Arkkitehtuuristen ominaisuuksien ansiosta järjestelmä voi vastata paremmin nykyisiin ja tulevaisuuden vaatimuksiin. Arkkitehtuuria voidaan suunnitella ympäristöön sopivista, valmiista tunnetuista komponenteista, tai rajoittamalla arkkitehtuurisia ominaisuuksia järjestelmän vaatimusten toteuttamiseksi [FIE00]. Arkkitehtuurityylejä (Architectural Style, Architectural Pattern) käyttämällä voidaan ohjelmiston laatuominaisuuksiin vaikuttaa kehityksen aikaisessa vaiheessa. Arkkitehtuurityyleistä on kirjallisuudessa useita määritelmiä: Fielding määrittelee arkkitehtuurityylin hallituksi kokonaisuudeksi arkkitehtuurisia rajoitteita (Constraint), jotka rajoittavat (Restricts) arkkitehtuuristen elementtien (Elements), roolit (Roles), ominaisuudet (Properties), sekä sallitut suhteet elementtien välillä (Relationships), tietyn arkkitehtuurityylin mukaisessa järjestelmässä. Tyylien avulla arkkitehtuureja voidaan luokitella ja kuvailla näiden keskeiset piirteet [FIE00]. Järjestelmän perusrakenne tai ns. perusluonne voidaan kuvata korkealla abstraktiotasolla arkkitehtuurityylinä tai ns. referenssiarkkitehtuurina, joka määrittelee arkkitehtuurin liittyvät käsitteet ottamatta kantaa yksittäiseen järjestelmään. Tietyn arkkitehtuurityylin mukaisessa järjestelmässä on joukko ohjelmistokomponentteja samassa roolissa ko. tyylin kannalta. Arkkitehtuurityyli määrittää järjestelmän kokonaisrakenteen ja tyyli voidaan käsittää myös järjestelmän toteutuksen rakenteen selityksenä [KM05]. Arkkitehtuurisiin ominaisuuksiin kuuluvat ohjelmiston toiminnalliset (Functional) ja laadulliset (Non-Functional) ominaisuudet. Laadullisilla ominaisuuksilla tarkoitetaan esimerkiksi ylläpidettävyyttä tai muokattavuutta, suorituskykyä ja komponenttien kykyä kehittyä itsenäisesti [FIE00]. Tietovuoarkkitehtuurityyli (Pipe-And-Filters Architecture) tavoittelee komponenttien uudelleenkäytettävyyttä ja konfiguroitavuutta rajoittamalla komponenttien rajapinnat yhtenäiseen ja yleiseen rajapintaan [FIE00]. Järjestelmä voi koostua useista tyyleistä, sillä tyyleillä pyritään vaikuttamaan ohjelmiston erilaisiin ominaisuuksiin. Hybridityyli (Hybrid Style)- termiä voidaan käyttää,yhdestä nimetystä ja koordinoidusta tyylistä joka koostuu muista arkkitehtuurityyleistä. Tyylien vertailu voi olla hankalaa johtuen ohjelmistojen erilaisista vaatimuksista ja toimintaympäristöistä [FIE00, ]. Arkkitehtuurityylin valinnalla on merkittävä vaikutus suunniteltaessa suorituskykyisiä, korkean saatavuuden (Availibility) ja tietoturvan vaatimuksia toteuttavia järjestelmiä ja tyylin valinnan tulisi olla ensimmäisiä päätöksiä arkkitehtuuria suunniteltaessa [LPR03]. Kokemuksen mukaan arkkitehtuuritason ratkaisut vaikuttavat järjestelmän suorituskykyyn eniten [SW01]. Arkkitehtuurityylejä ovat esimerkiksi asiakas-palvelin (Client- Server), malli- näkymä-ohjain- (Model, View, Controller), palveluperustaiset (Service Oriented Architecture, Representational State Transfer (REST) ja Web-Oriented Architecture (WOA). Palvelusuuntautuneessa arkkitehtuurityylissä (SOA) järjestelmä voi esimerkiksi noudattaa kolmitaso- (Three-Tier) ja komponenttien kokonaisroolijako malli näkymäohjain (MVC) -arkkitehtuurityyliä. Järjestelmäarkkitehtuurista voidaan myös erottaa
6 6(16) asiakas-palvelin (Client-Server) -, sekä työssä erityisesti käsiteltävät WOA- ja RESTarkkitehtuurityylit. Ohjelmistoarkkitehtuurien tutkimus keskittyy etsimään menetelmiä, miten parhaiten jakaa systeemi osiin, kuinka komponentit tunnistavat toisensa ja kommunikoivat keskenään, kuinka informaatio kommunikoidaan ja millä tavoin systeemi voi kehittyä itsenäisesti. Keskeistä ohjelmistoarkkitehtuurien tutkimuksessa on, kuinka nämä asiat voidaan kuvata formaaleilla ja epäformaaleilla menetelmillä [FIE00]. 3. REST REST on hybridiarkkitehtuurityyli, joka soveltuu erityisesti hajautettujen hypermediajärjestelmien (Web-sovellukset) toteutukseen. REST koostuu joukosta rajoitteita, jotka on valittu soveltuvin osin muista arkkitehtuurityyleistä, sekä komponenttien kommunikointirajapintaa koskevista yhtenäisen rajapinnan lisärajoitteista [FIE00]. RESTin on terminä tarkoitettu herättämään käsitys, miten hyvin suunnitellun Websovelluksen tulisi käyttäytyä: Web-sivujen joukko muodostaa virtuaalisen tilakoneen, joka tarjoaa käyttäjälle mahdollisuuden siirtyä sovelluksen tilasta toiseen, tilojen esitystavoissa (Representation) esiintyvien linkkien kautta tai täyttämällä esitystavassa oleva Web-lomake (Form) [FT02]. REST on johdettu arkkitehtuurityyleistä toisinnettu tietovarasto (Replicated Repository), välimuisti (Cache), asiakas- palvelin (Client-Server), kerroksittainen järjestelmä (Layered System), tilaton (Stateless), Virtuaalikone (Virtual machine), ladattava koodi (Code On Demand) ja yhtenäisestä rajapinnasta (Uniform Interface) [FT02]. RESTin keskeinen eroavaisuus sen johdannaisiin arkkitehtuurityyleihin nähden on yhtenäisen rajapinnan rajoitteet [FT02,122]. RESTin asiakas-palvelin kommunikointirajapintaa koskevat rajoitteet ovat resurssien tunnistaminen, resurssien muokkaaminen esitystapojensa kautta, itsekuvaavat viestit ja hypermedia tilasiirtymien mahdollistajana (Hypermedia as the Engine of Application state) [FIE00]. Standardointiorganisaatio W3C jakaa Web-palvelut kahteen pääluokkaan: REST:iä noudattavat (REST- Compilant) Web-palvelut ja REST:iä noudattamattomat (Non-Rest- Compilant) Web-palvelut. W3C määrittelee REST- yhteensopiviksi palveluiksi yhtenäistä rajapintaa noudattavat tilattomat palvelut, joiden tarkoituksena on muokata Web-resurssien XML-esitystapoja ja REST- yhteensopimattomat Web-palvelut palveluiksi, jotka tarjoavat mielivaltaisen määrän rajapinnan operaatioita. W3C:n mukaan yhteistä Web-palveluiden arkkitehtuurityyleillä on URI: en, Web-protokollien (HTTP, SOAP 1.2) ja XML-tiedostomuodon käyttö [W3C04]. REST- yhteensopimattomilla palveluilla voidaan käsittää esimerkiksi RPC (Remote Procedure Call)-tyylisiä WS-(Web Services) teknologiapinon avulla toteutettuja palveluita. RESTin arkkitehtuurisina tavoitteina on latenssin ja verkkoviiveen vähentäminen, komponenttien itsenäisen kehitettävyyden ja toteutuksen skaalautuvuuden parantaminen. REST ei rajoita yksittäisten komponenttien sisäisiä suhteita, toteutustapaa tai protokollien
7 7(16) syntaksia [FIE00, EGS07]. REST mahdollistaa rajoitteidensa ansiosta välimuistien (Web- Cache) käytön, interaktioiden uudelleenkäytön, komponenttien dynaamisen vaihdettavuuden ja toimintojen suorittamisen välittäjäkomponenteissa [FT02]. REST keskittyy komponenttien rooleihin, rajoitteisiin komponenttien välisessä kommunikaatiossa ja data-elementtien tulkintaan. Fieldingin mukaan muut tyylit keskittyvät enemmän komponenttien semantiikkaan, kun REST keskittyy liittimien (Connector) semantiikkaan [FIE00]. Huolimatta RESTin yksinkertaisista periaatteista, ne on havaittu vaikeiksi ymmärtää ja soveltaa johdonmukaisesti. Tästä johtuen useat Web-sovellukset jäävät ilman RESTin lupaamia hyötyjä. Useat palvelut väittävät tarjoavansa REST- rajapinnan, vaikkei kaikkia RESTin periaatteita ole noudatettu. Tilalliset ja välimuistia tukemattomat palvelut ovat yleisiä. Tilallisuus-rajoitteen rikkominen on yksi yleisimpiä REST- rajoitteiden rikkomuksia [EGS07, RR07, FIE00]. 3.1 Asiakas-Palvelin Liittämällä RESTiin asiakas-palvelin (Client-Server) arkkitehtuurityylin rajoitteet, saavutetaan selkeää ohjelmiston osien vastuiden jakamista (separation of concerns) [FIE00]. Asiakkaan ja palvelimen välinen ero on, että asiakas kutsuu palvelinta liitinkomponentin (Connector) kautta ja palvelin kuuntelee yhteyksiä ja muodostaa vastauksen. Molemmilla komponenteilla voi olla molemmat roolit [FT02, FIE00]. Asiakas-palvelin arkkitehtuurissa palvelinkomponentttien skaalautuvuutta voidaan parantaa jakamalla toiminnallisuus sopivasti asiakas- ja palvelinkomponenttien kesken. Yleensä tämä tarkoittaa käyttöliittymän esittämisen vastuun siirtämistä asiakaskomponentille. Asiakas- ja palvelinkomponentit voivat kehittyä itsenäisesti, mikäli niiden väliset rajapinnat säilyvät muuttumattomina [FIE00]. Asiakas-palvelin arkkitehtuurityylin perusmuoto ei rajoita, kuinka sovelluksen tilan hallinta on jaettu asiakas ja palvelinkomponenttien kesken [FIE00]. Esimerkiksi RESTin mukaisessa Web-palvelussa Client- komponentti lähettää käyttäjälle (User Agent) käyttöliittymän, joka voi koostua useista resursseista ja niiden esitystavoista, sekä linkeistä muihin sovelluksen tiloihin (resursseihin). 3.2 Välimuisti Välimuisti (Cache) voidaan määritellä asiakkaan ja palvelimen väliseksi välittäjäkomponentiksi (Mediator), sekä erilliseksi arkkitehtuurityyliksi [FIE00]. Välimuistikomponentteja voidaan käyttää verkkoviestien välttämiseen. Asiakas voi käyttää välimuistikomponenttia välttääkseen verkkoliikennöinnin ja palvelin esimerkiksi välttääkseen hakuja tietokannasta. Välimuistikomponentti toteutetaan yleensä samassa muistiosoitteessa, kuin komponentti joka sitä käyttää [FT02]. Välimuisteja voidaan jakaa yhden (private cache) tai useamman käyttäjän (Public Cache, Shared Cache) käyttöön. Selainohjelmistoissa on yksityinen välimuisti ja julkinen välimuisti voi toimia esimerkiksi välittäjäkomponentissa[gt02].
8 8(16) HTTP-protokollan mukaisesti palvelin voi liittää viestiin vanhenemispäivän otsikon (Header)-elementteinä. Asiakkaan suorittaessa palvelukutsun, voi Cachevälittäjäkomponentti palauttaa sopivan vastauksen, tai välittää pyynnön palvelimelle, joka muodostaa vastauksen uudelleen. 3.3 Kerroksittainen Kerroksittaisessa järjestelmässä ylemmän kerroksen komponentit käyttävät alemman kerroksen komponenttien palveluita ja kullakin kerroksella on joukko rajapintoja, jotka kerros tarjoaa ja joukko rajapintoja, jotka se vaatii. Kerrokset ovat vaihdettavia, sillä ylemmän kerroksen toteutus ei riipu alemman kerroksen toteutuksesta. Rajoittamalla järjestelmän kykyä kommunikoida kerrosarkkitehtuurissa lähimmän kerroksen kanssa saavutetaan yksinkertaistusta ja tuetaan komponenttien itsenäisyyttä [FIE00]. Kerroksia voidaan yleisesti käyttää kapseloimaan perinnejärjestelmiä, suojaamaan uusia palveluja perinnejärjestelmiltä ja yksinkertaistamaan järjestelmää siirtämällä toiminnallisuutta välittäjäkomponenteille [FIE00]. 3.4 Ladattava koodi REST:iin kuuluu valinnaisena rajoitteena ladattava koodi (Code on Demand). REST sallii asiakaskomponentin toiminnan laajentamisen ja konfiguroinnin lataamalla palvelimelta sovelmia (Applet) tai skriptejä (Scripts) [FIE00]. Ladattava koodi voisi olla esimerkiksi paikallisesti suoritettavan rajapinnan uusi toteutus, jonka asiakaskomponentti rekisteröi käyttöönsä. Java Web Start -ympäristö voidaan käsittää myös ladattavan koodin ilmentymänä. Java sovelman avulla voidaan muodostaa RMI (Remote Method Invocation)-kutsuja suoraan esimerkiksi Java EE (Java Enterprice Edition)-palvelimelle. Rajoitteen käytöllä saavutetaan suorituskykyetuja etäkutsuihin verrattuna ja palvelinkomponenttien skaalautuvuutta. Valinnainen rajoite heikentää kuitenkin näkyvyyttä (Visibility). Organisaation asiakkaat voivat esimerkiksi tukea Java-sovelmien käyttöä, mutta palomuurikäytännöt saattavat estää sovelmien lataamisen ulkoisista lähteistä. Monitorointi hankaloituu, koska palvelin lähettää asiakkaalle koodia datan sijasta. Valinnaisessa rajoitteessa on huomioitava, että arkkitehtuuri hyötyy sen eduista, mutta myös kärsii haitoista kokonaisjärjestelmän kannalta. Käytettäessä valinnaista rajoitetta on tiedostettava, missä mittakaavassa se vaikuttaa kokonaisjärjestelmään [FIE00]. 3.5 Tilattomuus REST- asettaa tilattomuusrajoitteen komponenttien kommunikaatiolle. Tilattomuusrajoitteen mukaisesti jokaisen asiakkaan palvelupyynnön tulee sisältää kaikki tarvittava tieto palvelupyynnön suorittamiseksi palvelimella. Käyttäjä voi RESTin mukaisessa järjestelmässä siirtyä sovelluksen tilasta toiseen esitystavoissa olevien hyperlinkkien tai lomake (Form)- komponenttien avulla. Mikäli asiakas haluaa palvelimen huomioivan tilan, on se lähetettävä jokaisen pyynnön yhteydessä. Esimerkiksi autentikointitiedot on lähetettävä jokaisen pyynnön yhteydessä [RR07]. Tilattomuus- rajoitteesta seuraa arkkitehtuurisina ominaisuuksina näkyvyyttä,
9 9(16) luotettavuutta ja skaalautuvutuutta. Näkyvyys paranee, koska mahdollinen monitorointijärjestelmä voi päätellä yhdestä pyynnöstä, mikä koko pyynnön varsinainen tarkoitus oli. Luotettavuus paranee, sillä osittaisista häiriöistä (Partial Failures) voidaan toipua paremmin [FIE00]. Tilattomuuden ansiosta asiakkaat eivät joudu palvelimen häiriötilanteessa epäjohdonmukaiseen tilaan, sillä ne eivät luota palvelimella säilöttyyn tilaan, toisin kuin tilan palvelimelle säilövissä sovelluksissa. Tilalliselle palvelulle on helpommin toteutettavissa kuormantasaus (Load Balancing), välimuistikomponenttien käyttö ja ryvästys (Clustering) [PAU09]. Asiakkaan ei täydy olla tiettyyn palvelinohjelmiston instanssiin yhteydessä yhden kokonaiskeskustelun aikana, eikä tilaa tarvitse toisintaa muille käytössä oleville palvelimille. Palvelimen skaalautuvuus parantuu, sillä tilanhallinta on asiakaskomponentin vastuulla. Tämä parantaa palvelimen kykyä (kapasiteettia) vapauttaa resursseja muuhun käyttöön ja yksinkertaistaa palvelinkomponenttien toteutusta. Tilattomuus- rajoite on kuitenkin valintakysymys (Design-Tradeoff). Haittapuolena on suorituskyvyn laskua, sillä asiakkaan tilatieto lähetetään palvelimelle jokaisen palvelupyynnön yhteydessä [FIE00]. Tilattomuus rajoitteen mukaan palvelimen eri tilat ovat myös resursseja, joille tulee antaa oma URL- osoite. Tekniikoita tilansiirtämisen toteuttamiseen (Exchange State) on URI: n uudelleenkirjoitus (URI- Rewriting), evästeet (Cookies) ja piilotetut Weblomakemuuttujat (Form). Tila voidaan upottaa palvelimen vastausviesteihin osoittamaan asiakkaan seuraavia mahdollisia tilasiirtymiä sovelluksessa [PAU09]. Evästeiden käytössä on ongelmia, eivätkä ne kuulu HTTP-standardiin [FIE00, RR07] 4. Yhtenäinen Rajapinta RESTin keskeinen rajoite muihin arkkitehtuurityyleihin verrattuna on komponenttien välinen yhtenäinen rajapinta. Useita rajoitteita on sovellettava, jotta yhtenäiseen rajapintaan päästäisiin. REST määrittää neljä (4) rajapintarajoitetta. 1) Resurssien tunnistaminen (Identification of resources) 2) Resurssien muokkaaminen esitystapojensa kautta (Manipulation of resources through representations) 3) Itsekuvaavat viestit (Self-descriptive messages) 4) Hypermedia sovelluksen tilakoneena (hypermedia as the engine of application state) Yhtenäisellä rajapinnan käytöstä on etuina konfiguroitavuutta, uudelleenkäytettävyyttä, itsenäistä kehitettävyyttä, kokonaisarkkitehtuuri yksinkertaistuu ja interaktioiden näkyvyys paranee. Yhtenäisen rajapinnan haittana on, että se kuluttaa verkon suorituskykyä, jos tietoa joudutaan muuntamaan natiivin ja ohjelmointikielikohtaisen rajapinnan välillä [FIE00]. REST ei määritä mitä yhtenäistä rajapintaa on käytettävä, REST määrittää että rajapinnan on oltava yhtenäinen ja jokaisen rajapinnan käyttäjän on käytettävä rajapintaa samalla tavalla [FIE00,RR07].
10 10(16) REST-toteutuksissa voidaan käyttää sallimia operaatioita (esim. GET, PUT, POST, DELETE, HEAD, OPTIONS), useissa lähteissä (EI Fielding) näitä on liitetty ns. CRUD- operaatioihin. GET vastaa lukuoperaatiota (READ), PUT vastaa päivitysoperaatiota (UPDATE), POST vastaa lisäysoperaatiota (INSERT) ja DELETE vastaa poisto-operaatiota (DELETE). Algoritminen resurssi, joka ei muokkaa dataa voidaan pyytää GET- pyynnöllä. GET ja HEAD- pyynnöt ovat HTTP-protokollan mukaisesti turvallisia (Safe). Asiakas ei ole vastuussa, mikäli turvallisessa operaatioissa muokataan dataa. GET,- HEAD-, PUT- ja DELETE- operaatiot ovat idempodenttejä. Idempodentin operaation suorittaminen useamman kerran, vastaa vaikutuksiltaan palvelimella operaation suorittamista kerran. POST-pyyntö ei ole turvallinen, eikä idempodentti. Idempodenttien operaatioiden puuttuminen SOAP-viesteistä (POST), vaikeuttaa Web- Cache komponenttien kykyä säilöä viesti välimuistiin, sillä koko viesti on käsiteltävä, eikä vain otsikko-elementtejä, kuten HTTP-viestissä. [RR07, HTTP1.1] 4.1 Yhtenäisen rajapinnan rajoitteet ja resurssitunnisteet Informaation abstraktiota kutsutaan REST:ssä resurssiksi (Resource) [FIE00]. Kaikki, mikä voi olla käyttäjän hypertekstiviitteen kiinnostuksen kohteena tulee nimetä resurssiksi. Resurssi on käsitteellinen liitäntä joukolle käsitteitä, eikä käsitteelle joka noudattaa liitäntää tietyssä ajanhetkessä. Esimerkiksi jonakin ajanhetkenä kaksi eri resurssia voi osoittaa samaan dataan. Ohjelmistoversion 1.03 ja viimeisimmän version URL (Uniform Resource Locator) voivat osoittaa hetken samaan dataan[fie00,rr07]. Resurssijoukon alkiot voivat olla resurssien esitystapoja tai resurssien tunnisteita. Resurssi voi myös viitata tyhjään joukkoon (empty set), jonka ansiosta viittauksia voidaan tehdä, ennen kuin resurssin toteutus on olemassa. Resursseilla voi olla myös suhteita toisiin resursseihin. Mikäli resurssilla on useita URL-osoitteita, on asiakkaiden helpompi viitata resurssiin. Haittapuolena on kuitenkin se, että jokainen URL-osoite kumoaa toisten merkityksen, sillä jotkut asiakkaat käyttävät yhtä ja toiset toista osoitetta, eikä voida automatisoidusti verifioida, että URI-osoitteet osoittavat samaan resurssiin [RR07]. Käytettävyystutkija Jakob Nielsenin mukaan jokaisen resurssin tulisi olla osoitettavissa ns. mukavan ( nice ) URI:n avulla. URI:en ominaisuuksiksi listataan mm. pysyvyys (Durability), ennustettavuus (Predictability), suppeus (Conciseness), luettavuus (Readability), yhdenmukaisuus ja abstraktointi toteutuksen yksityiskohdista. [NIE99] Sisällön neuvottelemisella (Content Negotiation) tarkoitetaan palvelimen kykyä erotella asiakkaan ympäristöstä esimerkiksi käytettävä kieli. Ryby suosittelee Accept Language otsikon (Header) käyttöä ja samaa URL - osoitetta resurssin eri kieliversioille. Ruby suosittelee, että jokaiselle resurssin erilliselle esitystavalle määritetään oma URI, sillä URI:ja käytetään usein syötetietona toiselle palvelulle, jolloin oletetaan tietty esitystapamuoto (esim: XML tai JSON). [RR07] Esimerkiksi W3C ylläpitää palvelua,
11 11(16) johon syötetietona voidaan antaa URL- osoite ja palvelu palauttaa raportin, onko sivun esitystapamuoto valitun standardin mukainen. class Logical View Dokumentti URI 0..* 1 «interface» Resurssi + DELETE() : void + GET() : Resurssi + HEAD() : void + OPTIONS() : void + POST() : void + PUT() : void 0..* HTTP RESPONSE CODES 1 Data MIME-TYPES Esitystapa 0..* text/html text/plain image/gif image/jpg audio/x-wav model/vrml application / vnd ms-powerpoint multipart/byteranges message/http Content-Type header specifies the media type of the original entity body. Esitystapastandardeja - XHTML - JSON - ATOM - HTML - XML-skeemat Kuva1. Esim: URI, Esitystapa ja Resurssi. Kuvan 1 mukaisesti, resurssilla tulee olla vähintään yksi URL [RR07]. Jokainen URL osoittaa yhteen resurssiin. Resurssiin voi liittyä myös muita resursseja. Resurssilla tulee olla vähintään yksi nimi ja nimiä tulee olla niin vähän, että jokainen nimi on merkitsevä [RR07]. RESTin mukainen Web-palvelu tarjoaa käyttäjälleen resurssin esitystapoja. Resurssilla voi olla 0 tai useampi esitystapa. Esitystavalla tarkoitetaan tietomuotoa, joka sisältää informaatiota resurssista [RR07]. Esimerkkejä mahdollisista resursseista Web-sovelluksessa
12 12(16) - Ohjelmiston versio Ohjelmiston viimeisin versio - Algoritmin tulos [RR07] - Henkilötietojen esitys 4.2 Resurssien muokkaaminen esitystavan kautta RESTin mukaisessa palvelussa resursseja ei voida muokata kuin niiden esitystapojensa kautta [RR07] yhtenäistä rajapintaa käyttäen. Esitystapaformaatteja on useita mm. XML, XHTML, JSON, ATOM, SVG,RDF ja erilaiset XML-sanastot. 4.3 Itsekuvaavat viestit REST:ssä välittäjäkomponentit voivat aktiivisesti muuntaa ja käsitellä viestien sisältöä, sillä viestit ovat itsekuvaavia (SelfDescriptive) ja niiden semantiikka on näkyvissä välittäjäkomponenteille. XML-viestit ovat esimerkiksi itsekuvaavia. Viestien metatietoja voidaan käyttää välimuistinhallinnassa (Cache Control), tietonsiirtovirheiden havaitsemisessa, esitystavan valinnassa, autentikoinnissa ja pääsynhallinnassa (Access Control) [FIE00] 4.4 Hypermedia sovelluksen tilakoneena RESTin mukaisessa palvelussa palvelin johdattaa asiakasta palvelun tiloista toisiin liittämällä resurssien esitystapoihin linkkejä toisiin resursseihin ja niiden esitystapoihin.[fie00] 4.5 REST- rajapintojen kuvaaminen RESTin mukaisten palveluiden rajapintojen kuvaamiseen voidaan käyttää erityisen XML-skeeman mukaista XML-kieltä [WADL]. Pautasso ym. toteavat, että rajapintojen kuvaaminen on yleisesti hyödyllistä, jotta muutokset rajapinnoissa ja niiden aiheuttamat kehityksenaikaiset virheet saadaan kiinni aikaisessa vaiheessa. RESTin mukaisesti rajapinnan operaatiot eivät muutu, mutta URLosoitteet ja resurssien esitystavat voivat muuttua kehityksen aikana [PAU09]. Rubyn mukaan myös useat REST rajapintojen tarjoajat eivät julkaise WADL-kuvauksia rajapinnoista, mutta esimerkiksi Yahoo NewsSearch palvelu julkaisee [RR07]. WADLkielellä voidaan kuvata mm. resurssit, suhteet resurssien välillä, HTTP-metodit joihin resurssit vastaavat ja rajapinnan palauttamat tiedostoformaatit [HAN06]. Liitteessä 1 on esimerkki Yahoo News Search- WADL-tiedostosta ja Java-työkaluilla tuotetuista tynkäluokista.
13 13(16) 5. Web- suuntautunut arkkitehtuurityyli Web-suuntautunut arkkitehtuuri (Web Oriented Architecture, WOA) on teknologiakonsulttiyhtiö Gartnerin (Nick Gall), vuonna 2005 konferenssissä käyttämä termi, josta myöhemmin kehitettiin nimi arkkitehtuurityylille. Gall kuvaa Krishanin haastattelussa, että WOA on palvelusuuntautuneen arkkitehtuurityylin (SOA) alityyli (Substyle). Gall määrittelee myös, että Web-palvelun tulee noudattaa, mutta ei tarvitse täyttää kaikkia RESTin rajoitteita ollakseen WOA: n mukainen. Gall määrittelee yhtälön, joka kuvaa mitä WOA on. WOA = SOA + REST + WWW [LAW08] Kuva2 SOA, WOA ja REST Toinen määritelmä WOA:lle voisi olla arkkitehtuurinen SOA:n (Service Oriented Architecture) alityyli, joka yhdistää järjestelmiä ja käyttäjiä linkittyneen hypermedian avulla, perustuen WWW:n arkkitehtuuriin. Gartnerin määritelmän mukaan WOA on arkkitehtuurityyli, joka keskittyy käyttäjä- (UI) ja ohjelmointirajapintojen (API) yleisyyteen asettamalla viisi yleistä rajapintarajoitetta. Neljä rajapintarajoitteista on kuvattu Fieldingin REST:ssä (ks. Luku 4) ja Gall lisää yhden rajapintarajoitteen sovellusriippumattomuus (Application Neutrality). Sovellusriippumattomuus tarkoittaa yleisesti hyväksyttyjen mediatyyppien (MIME- types) käyttöä. WOA suosittelee rajapintojen tunnisteiden, protokollien ja tietomuotojen (Generic Identifiers, Protocols and Formats, IPAFS) olevan niin yleisiä kuin mahdollista ja pitää perinteisten Webpalvelujen toteutusriippumattomuutta (Implementation Neutrality) toisarvoisena tavoitteena rajapintojen suunnittelussa [NIC08] 6. Työkalutuki Java-ympäristössä palvelinkomponentti voidaan toteuttaa Web-palvelimella HttpServletkomponenttina ja useimmille kielille löytyy HttpClient- kirjastoja kutsujen suorittamiseksi ohjelmallisesti. Web-palvelimelle asennettuja REST-komponentteja voidaan kutsua ja testata WWW-selaimella. Java-Sun on tehnyt JAX-RS (Java API For
14 14(16) RESTful WebServices)-määrittelyn 2 ja toteuttanut määrittelyjä tukevan kehyksen Jerseyn. Jerseytä ennen kehitettiin RestLet - kehys 3. JBoss - tarjoaa palvelinriippumattoman kehyksen RestEasy 4. Java EE-palvelinohjelmistoa voidaan käyttää myös palvelinkomponenttien ajoympäristönä, mikäli se on tarpeellista. XMLviestien parsimiseen löytyy työkaluja (esim. Java: SAX, DOM, JDOM) useimmilta ohjelmointikieliltä. XML-tiedostoja voidaan muokata XHTML/XML-muotoon XSLT / XSL- tyylitiedostojen avulla. REST -rajapintojen kuvaukseen suositellaan XML:n mukaista WADL -kieltä. Java-ympäristössä on ainakin Sun:in WADL-tuki. Useimmista tietokannoista löytyy XML-tukea. Avoimen lähdekoodin Exists- tietokannassa on RESTtuki 5. XML-viestejä voidaan salata standardoidusti 6. Työssä ei tilanpuutteen vuoksi käsitellä työkaluja enempää. 5. YHTEENVETO Arkkitehtuureja voidaan suunnitella valmiista komponenteista tai määräämällä rajoitteita, jotka tuovat järjestelmään ominaisuuksia. REST- palveluja voidaan kehittää vähillä työkaluilla ja asiakasohjelmien kehittäminen on helppoa. REST- rajapintoja voidaan testata kehityksenaikana suoraan Web-selaimella.[PAU09] REST on erityisen käytännöllinen myös mobiililaitteissa verrattuna SOAP-viesteihin ja niiden mahdollisesti tarpeettomaan yleisrasitteeseen (Overhead) [TY06] WWW koostuu resursseista, mutta perinteiset Web-palvelut eivät tarjoa resursseja. WWW koostuu URL- osoitteista ja linkeistä, mutta tyypillisesti perinteiset Web-palvelut paljastavat yhden URL- osoitteen, eivätkä linkkejä toisiin palveluihin. WWW- perustuu mutta perinteiset Web-palvelut eivät käytä ominaisuuksia juuri lainkaan [RR07]. Generoidut SOAP/WSDL rajapinnat ovat osittain yhteensopimattomia. Erilaiset Web Services -työkalupinot tulkitsevat standardeja erilailla ja generoivat toisistaan poikkeavia WSDL-kuvauksia, eivätkä ymmärrä välttämättä toistensa viestejä ajonaikana. Webpalvelujen asiakkaat ovat näin vahvasti kytkettyjä palvelijoihin, jotka käyttävät samoja WS* teknologiapinoja ja niiden versioita [RR07]. Kuvassa 3 on Web-palveluiden standardeja listattu kategorioittain. Yhteentoimivuus (Interoperability) 10 Tietoturva (Security) 10 Meta-tiedot (Metadata) 9 Viestinvälitys (Messaging) 9 Liiketoimintaprosessi (Business Process) 7 Resurssi (Resource) 7 Tietomuunnokset (Translation) Michael Rosen, Boris Lublinsky, Kevin T. Smith, Marc Balser: Applied SOA, Service Oriented Architecture and Design Strategies
15 15(16) XML (Extensible Markup Language) 7 Management (Hallinta) 4 SOAP (Simple Object Access Protocoll) 3 Esitystapa (Presentation) 1 Kuva 3 WS*- standardeja kategorioittain [KAL09] Tulevaisuudessa RESTin mukaiset järjestelmät ja palvelut tulevat lisääntymään. RESTin mukaisten järjestelmien suunnitteleminen ja toteuttaminen on osoittautunut vielä toistaiseksi haastelliseksi. Toteutettuja palveluita on useita eivätkä ne ole noudattaneet RESTin rajoitteita kuin osittain. Palvelut myös kärsivät rajoitteiden rikkomisesta. RESTin mukaisissa Web-palveluissa joudutaan kehittämään enemmän omia ratkaisuja ja mahdollisesti organisaatiokohtaisia standardeja, kuin toteutettaessa ja käytettäessä perinteisiä WS*- teknologiapinon mukaisia Web-palveluita ja standardeja. Järjestelmässä voidaan käyttää sekä RESTin, että WS* -teknologiapinon mukaisia Web-palveluita. RESTin resurssien ja niiden linkittämisen avulla voidaan esimerkiksi helposti tehdä käytettäväksi liiketoiminnallisesti merkittävää raportointia yli järjestelmä- ja organisaatiorajojen. Koosteiset ns. MashUp sovellukset lisääntyvät jatkuvasti ja toimittajat tarjoavat omia RESTin mukaisia rajapintoja käytettäväksi järjestelmäintegraatiossa. Kannattaa harkita tarkkaan, mitkä osat yritysarkkitehtuurista ja sen tarjoamista palveluista toteutetaan RESTin mukaisilla Web-palveluilla ja missä käytetään WS*- teknologiapinoa. Kehittäjät suosivat RESTiä helppokäyttöisyyden vuoksi ja WS* - teknologiapinon työkaluihin kehitetään jatkuvasti tukea RESTin mukaisten Webpalveluiden toteuttamiseen. LÄHTEET GAL08 GT02 RLS08 NIC08 LOR08 WOA keskustelulista: HTTP, The definitive Guide. O Reilly. Michael Rosen, Boris Lublinsky, Kevin T. Smith, Marc Balser: Applied SOA, Service Oriented Architecture and Design Strategies, ISBN: Nick Gall, WOA: Putting the Web Back in Web Services Loraine Lawson Why WOA vs. SOA Doesn't Matter
16 16(16) hy-woa-vs-soa-doesnt-matter/?cs=23092 HIN06 EGS07 FIE00 FT02 HAN06 KM05 LPR03 Dion Hinchcliffe, Verkkojulkaisu, The SOA with reach: Web-Oriented Architecture Justin R. Erenkrantz, Michael M. Gorlick, Girish Suryanarayana, Richard N. Taylor : From Representations to Computations: The Evolution of Web Architectures Fielding, Roy Thomas. Architectural Styles and the Design of Networkbased Software Architectures. Doctoral dissertation, University of California, Irvine, 2000 Roy T. Fielding, Richard, N. Taylor: Principled design of the Modern Web Architecture University of California, Irvine. ACM Transactions on Internet Technology, Vol. 2, No. 2, May Marc J. Hadley, Sun Microsystems Inc. Web Application Description Language (WADL) Kai Koskimies, Tommi Mikkonen. Ohjelmistoarkkitehtuurit Len Bass, Paul Clements, Rick Kazman: Software Architecture in Practice, Second Edition, Addison Wesley ISBN: TY06 Sameer Tyagi, Verkkojulkaisu. RESTful Web Services PAU08 Cesare Pautasso, Olaf Zimmermann, RestFul Web Services vs. Big Web services: Making the right architectural decision W3C04 RR07 HINCH06 PRG09 David Booth, Hugo Haas, Francis McCabe, Eric Newcomer, Michael Champion Web Services Architecture, W3C Working Group Note 11 February Saatavilla osoitteesta ( Leonard Richardson, Sam Ruby. RESTful Web Services, O Reilly. Dion Hinchcliffe, Verkkojulkaisu, The SOA with reach: Web-Oriented Architecture WADL NIE99 Jakob Nielsen, URL as UI:
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,
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
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.
Tiedonsiirto- ja rajapintastandardit
Tiedonsiirto- ja rajapintastandardit Viitekehys Julkishallinnon perustietovarantojen rajapinnat (PERA) työryhmän tulokset valmiit syksyllä 2011 Määrittelee teknisen arkkitehtuuriratkaisun tietovarantojen
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
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
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ä
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,
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
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
Järjestelmäarkkitehtuuri (TK081702) Avoimet web-rajapinnat
Järjestelmäarkkitehtuuri (TK081702) SOA yleistyvät verkkopalveluissa Youtube Google... Avaavat pääsyn verkkopalvelun sisältöön. Rajapintojen tarjoamia tietolähteitä yhdistelemällä luodaan uusia palveluja,
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ö:
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
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
Ohjelmistoarkkitehtuurit. Syksy 2010
Ohjelmistoarkkitehtuurit Syksy 2010 Kai Koskimies Tervetuloa Oulun yliopisto, Tampereen yliopisto, Turun yliopisto, Tampereen teknillinen yliopisto, Vaasan yliopisto Kurssin tavoitteet Arkkitehtuurin roolin
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
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
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
Ohjelmistoarkkitehtuurit. Kevät
Ohjelmistoarkkitehtuurit Kevät 2012-2013 Johannes Koskinen http://www.cs.tut.fi/~ohar/ Tervetuloa Oulun yliopisto, Tampereen yliopisto, Turun yliopisto, Tampereen teknillinen yliopisto 2 Kurssin tavoitteet
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
Web-palvelu voidaan ajatella jaettavaksi kahteen erilliseen kokonaisuuteen: itse palvelun toiminnallisuuden toteuttava osa ja osa, joka mahdollistaa k
1 Web-palvelu voidaan ajatella jaettavaksi kahteen erilliseen kokonaisuuteen: itse palvelun toiminnallisuuden toteuttava osa ja osa, joka mahdollistaa ko. toiminnallisuuden hyödyntämisen Web-palveluna.
REpresentational State Transfer (REST)
REpresentational State Transfer (REST) 206 ReST Proposed by Roy Fielding In his PhD dissertation Architectural styles and the design of network-based software architectures, University of California, Irvine,
Palveluperustaiset arkkitehtuurityylit
Palveluperustaiset arkkitehtuurityylit Mukana palvelun tarjoajia ja palvelun käyttäjiä Perusajatuksena tyypillisesti tarjota johonkin resurssiin liittyviä palveluita 1 Asiakas-palvelin -arkkitehtuurit
Järjestelmäarkkitehtuuri (TK081702) Web Services. Web Services
Järjestelmäarkkitehtuuri (TK081702) Standardoidutu tapa integroida sovelluksia Internetin kautta avointen protokollien ja rajapintojen avulla. tekniikka mahdollista ITjärjestelmien liittämiseen yrityskumppaneiden
Osittavat arkkitehtuurityylit. Palveluihin perustuvat arkkitehtuurityylit. Erikoisarkkitehtuurityylit
6. Arkkitehtuurityylit Osittavat arkkitehtuurityylit Kerrosarkkitehtuurit Tietovuoarkkitehtuurit Palveluihin perustuvat arkkitehtuurityylit Asiakas-palvelin arkkitehtuurit Viestinvälitysarkkitehtuurit
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 0.4 1.11.2007 Matti Eerola 0.3 18.10.2007 Matti Eerola 0.2
Ohjelmistojen mallinnus Ohjelmistoarkkitehtuuri Harri Laine 1
Ohjelmistojen mallinnus Ohjelmistoarkkitehtuuri 2 28.11.2008 Harri Laine 1 Ohjelmistoarkkitehtuuri Rajapinta UML:ssä piirteiden (attribuuttien ja operaatioiden) kokoelma, josta ei voi suoraan luoda ilmentymiä
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,
Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1
Ohjelmistoarkkitehtuurit Syksy 2009 Kai Koskimies Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1 Tervetuloa Kuopion yliopisto, Oulun yliopisto (Kajaani), Tampereen yliopisto, Turun yliopisto,
Ohjelmistoarkkitehtuurit. Syksy 2008
Ohjelmistoarkkitehtuurit Syksy 2008 Kai Koskimies 1 Tervetuloa Kuopion yliopisto, Oulun yliopisto, Tampereen yliopisto, Teknillinen korkeakoulu, Turun yliopisto, Vaasan yliopisto, Tampereen teknillinen
OSI ja Protokollapino
TCP/IP OSI ja Protokollapino OSI: Open Systems Interconnection OSI Malli TCP/IP hierarkia Protokollat 7 Sovelluskerros 6 Esitystapakerros Sovellus 5 Istuntokerros 4 Kuljetuskerros 3 Verkkokerros Linkkikerros
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
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
Toimilohkojen turvallisuus tulevaisuudessa
Toimilohkojen turvallisuus tulevaisuudessa Turvallisuusseminaari ASAF 30.10-1.11.2006 Mika Strömman Teknillinen korkeakoulu 1 Sisältö Luotettavuuden lisääminen hyvillä tavoilla Toimilohkokirjastot Turvatoimilohkot
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
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
Johdatus rakenteisiin dokumentteihin
-RKGDWXVUDNHQWHLVLLQGRNXPHQWWHLKLQ 5DNHQWHLQHQGRNXPHQWWL= rakenteellinen dokumentti dokumentti, jossa erotetaan toisistaan dokumentin 1)VLVlOW, 2) UDNHQQHja 3) XONRDVX(tai esitystapa) jotakin systemaattista
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,
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
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
Paikkatiedot ja Web-standardit
Paikkatiedot ja Web-standardit Ossi Nykänen Tampereen teknillinen yliopisto (TTY), Digitaalisen median instituutti (DMI), Hypermedialaboratorio W3C Suomen toimisto Esitelmä Hyvin lyhyt versio: World Wide
Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset
Tekninen määrittely: Editori Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset Sisällysluettelo 1. Johdanto...4 1.1. Tarkoitus ja kattavuus...4 1.2. Tuote ja ympäristö...4 1.3. Määritelmät,
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
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
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
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................................
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
Ohjelmistoarkkitehtuurit 2016. Kevät 2016 -käytäntöjä
Ohjelmistoarkkitehtuurit Kevät 2016 -käytäntöjä Samuel Lahtinen http://www.cs.tut.fi/~ohar/ 13.1.2016 1 Tervetuloa Tampereen teknillinen yliopisto, Oulun yliopisto, Turun yliopisto 13.1.2016 2 Tiedonvälitys
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
Ohjelmistoarkkitehtuurit Kevät käytäntöjä
Ohjelmistoarkkitehtuurit Kevät 2014 -käytäntöjä Samuel Lahtinen http://www.cs.tut.fi/~ohar/ 8.1.2014 1 Tervetuloa Oulun yliopisto, Tampereen yliopisto, Turun yliopisto, Tampereen teknillinen yliopisto
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
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
812347A Olio-ohjelmointi, 2015 syksy 2. vsk. IX Suunnittelumallit Proxy, Factory Method, Prototype ja Singleton
2015 syksy 2. vsk IX Suunnittelumallit Proxy, Factory Method, Prototype ja Singleton Sisältö 1. Johdanto luontimalleihin 2. Proxy 3. Factory Method 4. Prototype 5. Singleton Suunnittelumallit Proxy et.
Harri Kaukovuo Senior Sales Consultant Technology Sales Oracle Finland Oy
Harri Kaukovuo Senior Sales Consultant Technology Sales Oracle Finland Oy Oracle10 g Web Services Sisältö Service Oriented Architecture (SOA) Web Services Service Oriented Architecture Service Oriented
TIETOTEKNIIKAN OSASTO. Olavi Mäcklin REST-TYYLIN JA ROA-ARKKITEHTUURIN MUKAINEN RAJAPINTA PANKKIJÄRJESTELMÄÄN
TIETOTEKNIIKAN OSASTO Olavi Mäcklin REST-TYYLIN JA ROA-ARKKITEHTUURIN MUKAINEN RAJAPINTA PANKKIJÄRJESTELMÄÄN Diplomityö Tietotekniikan koulutusohjelma joulukuu 2014 Mäcklin O. (2014) REST-tyylin ja ROA-arkkitehtuurin
Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo
Concurrency - Rinnakkaisuus Group: 9 Joni Laine Juho Vähätalo Sisällysluettelo 1. Johdanto... 3 2. C++ thread... 4 3. Python multiprocessing... 6 4. Java ExecutorService... 8 5. Yhteenveto... 9 6. Lähteet...
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
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
Ohjelmistojen mallintaminen, mallintaminen ja UML
582104 Ohjelmistojen mallintaminen, mallintaminen ja UML 1 Mallintaminen ja UML Ohjelmistojen mallintamisesta ja kuvaamisesta Oliomallinnus ja UML Käyttötapauskaaviot Luokkakaaviot Sekvenssikaaviot 2 Yleisesti
Digitaalisen median tekniikat xhtml - jatkuu Harri Laine 1
Digitaalisen median tekniikat xhtml - jatkuu 30.4.2004 Harri Laine 1 XHTML lomakkeet Lomakkeet mahdollistavat tiedon välityksen asiakkaalta (selaimesta) tiedon vastaanottajalle Vastaanottaja voi olla sähköpostiosoite
A274101 TIETORAKENTEET JA ALGORITMIT
A274101 TIETORAKENTEET JA ALGORITMIT PERUSTIETORAKENTEET LISTA, PINO, JONO, PAKKA ABSTRAKTI TIETOTYYPPI Tietotyyppi on abstrakti, kun se on määritelty (esim. matemaattisesti) ottamatta kantaa varsinaiseen
Digitaalisen median tekniikat xhtml - jatkuu
Digitaalisen median tekniikat xhtml - jatkuu 26.3.2004 Harri Laine 1 Lomakkeet mahdollistavat tiedon välityksen asiakkaalta (selaimesta) tiedon vastaanottajalle Vastaanottaja voi olla sähköpostiosoite
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
Sisällys. Valtion tietotekniikan rajapintasuosituksia. XML:n rooleja sähköisen asioinnin tavoitearkkitehtuurissa. dbroker - asiointialusta
Palveluita ja sisältöä portaaliin - XML:n mahdollisuuksista XML-tietokannat ja julkishallinnon XML-sovellukset, 28.05.2002 Lasse Akselin, TietoEnator Oyj Sisällys Valtion tietotekniikan rajapintasuosituksia
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
Digikoulu Pilviteknologiat - Tunti 1001: Tiedon varastointi Amazon Simple Storage Service (Amazon S3) palveluun
Digikoulu Pilviteknologiat - Tunti 1001: Tiedon varastointi Amazon Simple Storage Service (Amazon S3) palveluun Omistaja: DigiCenterNS Versio: 1.0 Versiopvm: 30.07.2019 Kurssinimi: Tiedon varastointi Amazon
Paikkatietorajapinnat IT arkkitehtuurin näkökulmasta 21.12.200 7
Paikkatietorajapinnat IT arkkitehtuurin näkökulmasta 21.12.200 7 Mikä on IT arkkitehtuuri? Liiketoimintamalli määrittelee IT arkkitehtuurin IT arkkitehtuuri ottaa kantaa sovelluksen laadullisiin vaatimuksiin
Avoimet standardit ja arkistointi
Avoimet standardit ja arkistointi Ossi Nykänen ossi@w3.org Tampereen teknillinen yliopisto (TTY) Hypermedialaboratorio W3C Suomen toimisto 1 Esitelmä Hyvin lyhyt versio: World Wide Web Consortium (W3C)
Web sovelluksen kehittäminen sähkönjakeluverkon suojareleisiin
TEKNILLINEN KORKEAKOULU / VAASAN YLIOPISTO Diplomityöesitelmä Web sovelluksen kehittäminen sähkönjakeluverkon suojareleisiin Timo Ahola 2006 Web sovellus Web palvelut joiden avulla laite voidaan liittää
Integraatioratkaisu joukkoviestintäverkkojen esittämiseen paikkatietojärjestelmässä
Integraatioratkaisu joukkoviestintäverkkojen esittämiseen paikkatietojärjestelmässä Tuomas Suni Digita Oy Valvoja: Prof. Jukka Manner Ohjaaja: DI Heikki Isotalo Tietoverkkotekniikan diplomityöseminaari
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
Digitaalisen median tekniikat xhtml - jatkuu
Digitaalisen median tekniikat xhtml - jatkuu Harri Laine 1 Kehykset IFRAME - elementti (inline frame) mahdollistaa kehysten upottamisen myös muihin kuin frameset.dtd:n mukaisiin dokumentteihin IFRAME toimii
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
Sosiaalihuollon asiakastiedon arkiston validointipalvelu. Käyttöohje
Sosiaalihuollon asiakastiedon arkiston validointipalvelu Käyttöohje Sisällys 1 Johdanto 3 2 Käyttötarkoitus 3 3 Palvelut 3 3.1 HL7 V3 Medical Records sanoman skeemavalidointi 3 3.2 HL7 V3 Medical Records
SOAP tyyppisen www sovelluspalvelun muuntaminen REST:in mukaiseksi www sovelluspalveluksi. Alpertti Tirronen
SOAP tyyppisen www sovelluspalvelun muuntaminen REST:in mukaiseksi www sovelluspalveluksi Alpertti Tirronen Tampereen yliopisto Informaatiotieteiden yksikkö Tietojenkäsittelyoppi Pro gradu tutkielma Ohjaaja:
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
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
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
Eero Hyvönen. Semanttinen web. Linkitetyn avoimen datan käsikirja
Eero Hyvönen Semanttinen web Linkitetyn avoimen datan käsikirja WSOY:n kirjallisuussäätiö on tukenut teoksen kirjoittamista Copyright 2018 Eero Hyvönen & Gaudeamus Gaudeamus Oy www.gaudeamus.fi Kansi:
812347A Olio-ohjelmointi, 2015 syksy 2. vsk. VIII Suunnittelumallit Observer ja State
2015 syksy 2. vsk VIII Suunnittelumallit Observer ja State Sisältö 1. Johdanto käyttäytymismalleihin 2. Observer 3. State Suunnittelumallit Observer ja State 2 VIII.1 Johdanto käyttäytymismalleihin Päätarkoitus
Sisältö. XML, XHTML ja CSS XML XML. XML:n ja HTML:n ero. XML kieliä XML XHTML CSS XSL. T Hypermediadokumentin laatiminen 2002
, XHTML ja CSS T-111.361 Hypermediadokumentin laatiminen 2002 XHTML CSS XSL Sisältö EXtensible Markup Language W3C Recommendation helmikuu 1998 SGML:n osajoukko Standard Generalized Markup Language Kevyempi
REST-POHJAISEN WEB SERVICEN KEHITTÄMINEN
REST-POHJAISEN WEB SERVICEN KEHITTÄMINEN Case oldtimertimer Ammattikorkeakoulun opinnäytetyö Tietojenkäsittelyn koulutusohjelma Visamäki, syksy 2015 Mikko Jussilainen TIIVISTELMÄ Visamäki Tietojenkäsittelyn
SOA SIG SOA Tuotetoimittajan näkökulma
SOA SIG SOA Tuotetoimittajan näkökulma 12.11.2007 Kimmo Kaskikallio IT Architect Sisältö IBM SOA Palveluiden elinkaarimalli IBM Tuotteet elinkaarimallin tukena Palvelukeskeinen arkkitehtuuri (SOA) Eri
OHJ-5201 Web-palveluiden toteutustekniikat. Kurssisisällöstä. Tarja Systä
OHJ-5201 Web-palveluiden toteutustekniikat Kurssisisällöstä Tarja Systä 1 Yleistä Esitietovaatimukset OHJ-1400 Olio-ohjelmoinnin peruskurssi (pakollinen) OHJ-5010 Hajautettujen järjestelmien perusteet
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
Rajapintapalveluiden toteutusvaihtoehdot ja tilaaminen. Kunnat ja Inspire koulutus Jani Kylmäaho
Rajapintapalveluiden toteutusvaihtoehdot ja tilaaminen Kunnat ja Inspire koulutus 29.1.2013 Jani Kylmäaho Rajapintapalvelujen toteutusvaihtoehdot Itse tekemällä Rajapintapalvelut kunnan omaan paikkatietojärjestelmään
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,
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ä.
Ohjelmistoarkkitehtuurit. Syksy 2007
Ohjelmistoarkkitehtuurit Syksy 2007 Kai Koskimies 1 Tervetuloa Tampereen yliopisto, Teknillinen korkeakoulu, Turun yliopisto 2 Kurssin tavoitteet Arkkitehtuuritason peruskäsitteiden ymmärtäminen Arkkitehtuurien
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)
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,
Viestinvälitysarkkitehtuurit
Viestinvälitysarkkitehtuurit Lähtökohta: Järjestelmä koostuu keskenään kommunikoivista komponenteista, mahdollisesti hajautettuja Komponenttien palveluja ei tiedetä tarkasti etukäteen Komponentteja ja
Järjestelmäarkkitehtuuri (TK081702) Lähtökohta. Integroinnin tavoitteet
Järjestelmäarkkitehtuuri (TK081702) Integraation tavoitteita Lähtökohta Web-palvelut Asiakasrekisteri ERP, Tuotannon ohjaus Tuotanto Myynti Intranet Extranet? CRM Johdon tuki Henkilöstö Kirjanpito Palkanlaskenta
Arkkitehtuurityylejä ja ratkaisumalleja
Arkkitehtuurityylejä ja ratkaisumalleja Luento 4 12.9.2013 581358 Ohjelmistoarkkitehtuurit 1 Oppimistavoitteet Esimerkkejä yleisesti käytetyistä arkkitehtuurisista ratkaisumalleista ja tyyleistä Muutama
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
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
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
Kanta PHR:n Sandboxympäristöt. Eeva Turkka
Kanta PHR:n Sandboxympäristöt Eeva Turkka 16.4.2018 Mikä on Sandbox Sandbox on Kanta PHR:n avoin kehitys- ja kokeiluympäristö, jota voi käyttää itsenäisesti Sandboxin sovellukset noudattavat Kanta PHR:
Sivuston tiedotemreemir.com
Sivuston tiedotemreemir.com Luotu Maaliskuu 10 2019 18:41 PM Pisteet66/100 SEO Sisältö Otsikko Emre Emir, Full-Stack Web Developer Pituus : 35 Täydellistä, otsikkosi sisältää väliltä 10 ja 70 kirjainta.