REST (Representational State Transfer) REST (Representational State Transfer) on arkkitehtuurimalli jota käytetään hajautettujen järjestelmien väliseen kommunikointiin verkossa

REST (Representational State Transfer) noudattaa tätä arkkitehtuurimallia ja tarjoaa rajapinnan eri ohjelmistojen ja palvelinten väliseen kommunikointiin.

Tässä on joitakin REST API perusteita:
  1. Resurssit: RESTful API perustuu resursseihin, jotka ovat resursseja tai tietokohde, kuten käyttäjä, artikkeli tai kommentti. Näitä resursseja voidaan sitten käsitellä erilaisilla HTTP-metodeilla.
  2. HTTP-metodit: RESTful API käyttää HTTP-protokollaa, ja sen käytössä ovat yleisimmät HTTP-metodit, kuten GET, POST, PUT ja DELETE. Näitä metodeja käytetään resurssien hakemiseen, luomiseen, päivittämiseen ja poistamiseen.
  3. URI (Uniform Resource Identifier): Jokainen resurssi on identifioitu yksilöllisellä URI
    . URI määrittelee tien, jolla resurssiin voidaan viitata. Esimerkiksi /users/123 voisi olla URI käyttäjäresurssille, joka on identifioitu käyttäjän tunnisteella 123.
  4. JSON (JavaScript Object Notation): RESTful API yleisesti käyttää JSONia (tai joskus XML:ää) datan siirtämiseen pyyntöjen ja vastausten välillä. JSON on kevyt ja helppo lukea ja kirjoittaa, mikä tekee siitä suositun valinnan tietojen siirtoon verkon yli.
  5. Stateless (Tilaton): RESTful API on tilaton, mikä tarkoittaa, että jokainen pyyntö ja vastaus ovat riippumattomia toisistaan. Palvelin ei pidä tilaa (state) asiakkaan tilasta pyynnön välillä. Tämä mahdollistaa skaalautuvan ja joustavan järjestelmän.
  6. Hypermedia-linkitys: RESTful API voi sisältää hypermedian linkitystä, joka tarjoaa asiakkaalle tiedon siitä, mitä toimintoja tai resursseja on saatavilla ja miten niihin pääsee. Tämä auttaa parantamaan API löydettävyyttä ja käytettävyyttä.

Nämä ovat perusperiaatteita, jotka ohjaavat RESTful API:n suunnittelua ja toteutusta. RESTful API on laajalti käytetty tekniikka modernissa web-kehityksessä, ja se tarjoaa joustavan ja skaalautuvan tavan toteuttaa kommunikointi hajautettujen järjestelmien välillä.

arkkitehtuurimalliArkkitehtuurimalli

Arkkitehtuurimalli on abstrakti, jäsennelty kuvaus järjestelmän tai sovelluksen suunnittelusta ja rakenteesta. Se tarjoaa perustan järjestelmän eri osien suhteille, toiminnallisuuksille ja komponenteille.

Arkkitehtuurimalli määrittelee seuraavia asioita
  1. Komponentit: Järjestelmän erilliset osat tai komponentit, joita tarvitaan sovelluksen toiminnan toteuttamiseksi. Näihin kuuluvat esimerkiksi käyttöliittymäkomponentit, tietokantakomponentit, palvelinohjelmistot ja niin edelleen.
  2. Yhteyskäytännöt: Kuinka komponentit kommunikoivat keskenään. Tämä voi sisältää tietojen siirtämisen, viestinvälityksen ja muiden protokollien käytön.
  3. Rakenne: Komponenttien järjestely ja suhteet toisiinsa. Arkkitehtuurimalli määrittelee, miten komponentit on järjestetty ja miten ne toimivat yhdessä.
  4. Käyttäjien ja järjestelmän väliset vuorovaikutukset: Kuinka käyttäjät käyttävät järjestelmää ja kuinka järjestelmä vastaa käyttäjien toimiin. Tämä sisältää käyttöliittymäsuunnittelun ja käyttäjäkokemuksen huomioimisen.

Arkkitehtuurimalli antaa suunnittelijoille ja kehittäjille yleiskuvan siitä, miten järjestelmä tulisi rakentaa ja miten sen eri osat ovat keskenään yhteydessä. Se auttaa varmistamaan järjestelmän tehokkuuden, luotettavuuden, laajennettavuuden ja ylläpidettävyyden. Arkkitehtuurimalli voi olla hyvin yleinen tai hyvin yksityiskohtainen riippuen käsiteltävästä järjestelmästä ja tarpeista.

Hajautettu järjestelmäHajautettu järjestelmä

Hajautettu järjestelmä on tietokonejärjestelmä, joka koostuu useista autonomisista tietokoneista tai laitteista, jotka toimivat yhdessä koordinoidakseen tietojen käsittelyä tai tarjotakseen palveluita. Nämä järjestelmät jakavat tehtäviä ja resursseja verkossa ja voivat käsittää useita fyysisiä sijainteja.

Hajautetun järjestelmän keskeiset ominaisuudet ovat
  1. Autonomia: Hajautetut järjestelmät koostuvat useista itsenäisistä tietokoneista tai laitteista, jotka toimivat omalla tavallaan ja voivat tehdä päätöksiä ilman ulkopuolista ohjausta.
  2. Koordinaatio: Vaikka hajautetut järjestelmät koostuvat useista autonomisista osista, niiden on kyettävä koordinoimaan toimintaansa tehokkaasti saavuttaakseen yhteisen tavoitteen.
  3. Yhteisöläheisyys: Hajautetut järjestelmät pyrkivät olemaan läheisesti integroituneita ympäröivään yhteisöönsä ja ottamaan huomioon sen tarpeet ja resurssit.
  4. Joustavuus: Hajautetut järjestelmät ovat yleensä joustavia ja skaalautuvia, mikä mahdollistaa niiden laajentamisen ja muokkaamisen tarpeiden mukaan.
  5. Luotettavuus: Hajautetut järjestelmät pyrkivät olemaan luotettavia ja vikasietoisia, jotta ne voivat jatkaa toimintaansa, vaikka osa niiden komponenteista epäonnistuisi.

Esimerkkejä hajautetuista järjestelmistä ovat hajautetut tietokantajärjestelmät, hajautetut verkkopalvelut (kuten pilvipalvelut), hajautetut verkkotallennusjärjestelmät ja hajautetut laskentajärjestelmät. Näissä järjestelmissä useat tietokoneet tai laitteet työskentelevät yhdessä jakamaan työkuormaa, parantamaan tehokkuutta ja tarjoamaan palveluita käyttäjille.