okffi / open-api-definition

Community governed definition of open API
http://okffi.github.io/open-api-definition/
Creative Commons Zero v1.0 Universal
7 stars 7 forks source link

Rajapintakutsujen määrän rajaamisen salliminen? #11

Closed kyyberi closed 8 years ago

kyyberi commented 9 years ago

FB ryhmässä tullut kommentti:

"Koska rajattomasti skaalautuvan rajapinnan toteuttaminen on työlästä ja voi maksaa paljon, niin saako avoimeksi määritelty rajapinta kuitenkin rajoittaa (throttling) esimerkiksi rekisteröitymättömien käyttäjien pyyntöjen (n pyyntöä / min) määrää joko oletusarvoisesti tai kun resurssit ovat loppumassa?

Ajattelen tässä lähinnä sellaista tilannetta, että joku tekee rajapintaa suoraan hyödyntävän, todella suosituksi yllättäen tulevan palvelun, joka rajapintaan lamauttavan ruuhkan (vrt. Slashdot effect)."

apoikola commented 9 years ago

minun näkemykseni on, että pyyntöjen kohtuullinen rajoittaminen todellisesta tarpeesta on OK, mutta sitä ei saisi käyttää porsaanreikänä rajoittamaan enemmän, kuin mikä on tarve. Suurkäyttäjille voi sitten rakentaa SLA -kuviot avoimen rajapinnan päälle ja edellyttää rekisteröitymistä tai vaikka maksua.

Toisaalta myös avoin rajapinta ei ole sama kuin avoin data eli sitä kuka tekee millaisiakin kyselyjä voidaan rajoittaa myös sisällön takia... esim. potilastietojärjestelmän avoimesta rajapinnasta ei varmasti jaella ensinkään potilastietoja autentikoimattomalle käyttäjälle.

aapris commented 9 years ago

Otso ja Jogi ovat pohdiskelleet täällä tällaista:

"Palveluun C on olemassa toiminnallinen rajapinta. Päästäkseen siihen käsiksi täytyy pyytää käyttöavain palvelun tarjoajalta, koska palvelu ei kestäisi vapaan käytön kuormitusta. Käytännössä lupa myönnetään aina. -> SULJETTU Jos palvelusta tarjottaisiin testiversio vapaasti käytettäväksi, se olisi avoin"

Ja

"Avoin rajapinta kannattaa toteuttaa siten, että sitä kuormittamalla ei voi (ainakaan vahingossa) aiheuttaa uhkaa tai haittaa tietojärjestelmän muulle käytölle. Eli esimerkiksi rajapinnassa teknisesti rajattu kutsujen määrää per aikayksikkö."

Olisiko mitään järkeä kirjata tuo jälkimmäinen jotenkin avoimen rajapinnan määritelmään? Vaikka kohtaan 2) Käyttöönotettava? Ehkä jotenkin näin:

"Avoin rajapinta voi teknisesti rajata rekisteröitymättömien tai automaattisesti rekisteröityneiden käyttäjien kutsujen määrää per aikayksikkö vapaan käytön aiheuttaman kuormituksen hallitsemiseksi."?

apoikola commented 9 years ago

Joo hyvä kirjaus, onko muita ajatuksia?

On Tue, 5 May 2015 3:34 pm Aapo Rista notifications@github.com wrote:

Otso ja Jogi ovat pohdiskelleet täällä http://otsokivekas.fi/2014/06/avoin-rajapinta/ tällaista:

"Palveluun C on olemassa toiminnallinen rajapinta. Päästäkseen siihen käsiksi täytyy pyytää käyttöavain palvelun tarjoajalta, koska palvelu ei kestäisi vapaan käytön kuormitusta. Käytännössä lupa myönnetään aina. -> SULJETTU Jos palvelusta tarjottaisiin testiversio vapaasti käytettäväksi, se olisi avoin"

Ja

"Avoin rajapinta kannattaa toteuttaa siten, että sitä kuormittamalla ei voi (ainakaan vahingossa) aiheuttaa uhkaa tai haittaa tietojärjestelmän muulle käytölle. Eli esimerkiksi rajapinnassa teknisesti rajattu kutsujen määrää per aikayksikkö."

Olisiko mitään järkeä kirjata tuo jälkimmäinen jotenkin avoimen rajapinnan määritelmään http://avoinrajapinta.fi/? Vaikka kohtaan 2) Käyttöönotettava? Ehkä jotenkin näin:

"Avoin rajapinta voi teknisesti rajata rekisteröitymättömien tai automaattisesti rekisteröityneiden käyttäjien kutsujen määrää per aikayksikkö vapaan käytön aiheuttaman kuormituksen hallitsemiseksi."?

— Reply to this email directly or view it on GitHub https://github.com/okffi/open-api-definition/issues/11#issuecomment-99066756 .

pe3 commented 8 years ago

@aapris tuolla mun tekemän pull requestin kommenteissa pohdintaa työskentelytavasta. Kerkeisitkö vilkaisemaan? Huvittaisko sua kokeeksi tehdä ehdottamastasi muutoksesta WIP-feature-branch?

pe3 commented 8 years ago

Hyvä kun @kyyberi nostit tän esille. Musta tuntuis, että lähtökohtaisesti kaikilla rajapinnoilla on jonkinlainen terms of use. OpenStreetMap on varmaan subjektiivisesti avoimemmasta päästä. Heilläkin on kuitenkin mm. tällainen kirjaus: "Clients may be blocked without notice if they are affecting the service level for others or causing data corruption."

pe3 commented 8 years ago

Muutin tämän issuen nimeksi "kutsujen määrän rajaaminen?". @aapris teki aiheen muotoilusta pull-requestin, jota voi kattoo täältä. Mitä mieltä?

En tiennykään, että mulla on näin paljon oikeuksia tähän repoon.

Mygee commented 8 years ago

Versiossa 1.1 on tälläinen kirjaus asiaan liittyen: "Rajapintapalvelun julkisissa käyttöehdoissa voidaan määritellä, millä edellytyksillä (esimerkiksi palvelunestohyökkäysten torjumiseksi) rajapinnan käyttöä voidaan rajoittaa erikoistapauksissa."

Eli yritetään pitää avoimena oletusarvoisesti, mutta poikkeustilanteissa voidaan rajoittaa, kunhan se kerrotaan avoimesti rajapintapalvelun julkisissa käyttöehdoissa.