Verkkosovellus on asiakas-palvelinsovellus , jossa asiakas on vuorovaikutuksessa verkkopalvelimen kanssa selaimen avulla . Web-sovelluksen logiikka on hajautettu palvelimen ja asiakkaan välillä, tiedot tallennetaan pääosin palvelimelle, tietoa vaihdetaan verkon yli . Yksi tämän lähestymistavan etu on, että asiakkaat ovat riippumattomia käyttäjän käyttöjärjestelmästä , joten verkkosovellukset ovat monialustaisia palveluita.
Web - sovelluksia käytettiin laajalti 1990 - luvun lopulla ja 2000 - luvun alussa .
Merkittävä etu luotaessa web-sovelluksia tukemaan selaintoimintoja on se, että toiminnallisuuden on toimittava riippumattomasti tietyn asiakkaan käyttöjärjestelmästä. Sen sijaan, että kirjoittaisit eri versioita Microsoft Windowsille , Mac OS X :lle , GNU/Linuxille ja muille käyttöjärjestelmille, sovellus luodaan kerran mielivaltaiselle alustalle ja otetaan käyttöön siinä. Erilainen toteutus, CSS , DOM ja muut selainten spesifikaatiot voivat kuitenkin aiheuttaa ongelmia verkkosovellusten kehittämisessä ja myöhemmässä tuessa. Lisäksi käyttäjän kyky määrittää monia selainasetuksia (esimerkiksi fonttikokoa , värejä, poistaa komentosarjojen tuki käytöstä) voi estää sovellusta toimimasta oikein.
Toinen (vähemmän monipuolinen) lähestymistapa on käyttää Adobe Flash -, Silverlight- tai Java-sovelmia koko käyttöliittymän tai sen osan toteuttamiseen. Koska useimmat selaimet tukevat näitä tekniikoita (yleensä lisäosien kautta ), Flash- tai Java-sovellukset voivat toimia helposti. Koska ne antavat ohjelmoijalle enemmän hallintaa käyttöliittymässä, ne pystyvät kiertämään monia selainkokoonpanojen yhteensopimattomuuksia, vaikka asiakaspuolen Java- tai Flash-toteutusten väliset yhteensopimattomuudet voivat johtaa erilaisiin hankaluuksiin.
Vuonna 2015 Chrome, Safari ja muut suositut selaimet eivät tue Adobe Flash -tekniikkaa . [yksi]
Arkkitehtonisen samankaltaisuuden vuoksi perinteisten asiakas-palvelinsovellusten, jollain tavalla "paksujen" asiakkaiden kanssa, on kiistaa tällaisten järjestelmien luokittelun oikeellisuudesta verkkosovelluksiksi; vaihtoehtoinen termi on Rich Internet Applications .
Verkkosovellusten [2] arkkitehtoniseen suunnitteluun käytetään lähestymistapoja . Verkkosovellus koostuu asiakas- ja palvelinosista, mikä toteuttaa "client-server" -tekniikan .
Asiakasosa toteuttaa käyttöliittymän [3] , generoi pyyntöjä palvelimelle ja käsittelee sen vastaukset.
Palvelinosa vastaanottaa pyynnön asiakkaalta, suorittaa laskelmia, luo sitten verkkosivun ja lähettää sen asiakkaalle verkon yli HTTP - protokollaa käyttäen .
Web-sovellus itse voi toimia asiakkaana muille palveluille, kuten tietokannalle tai muulle eri palvelimelle isännöidylle verkkosovellukselle. Hämmästyttävä esimerkki verkkosovelluksesta on Wikipedian artikkelisisällönhallintajärjestelmä : monet sen osallistujista voivat osallistua verkkotietosanakirjan luomiseen käyttöjärjestelmiensä selaimilla (olipa se sitten Microsoft Windows , GNU/Linux tai mikä tahansa muu käyttöjärjestelmä). ) ja lataamatta muita suoritettavia moduuleja artikkelitietokannan kanssa työskentelemiseen.
Uusi lähestymistapa verkkosovellusten kehittämiseen nimeltä Ajax on tällä hetkellä saamassa suosiota . Ajaxia käytettäessä verkkosovellussivut eivät lataudu kokonaan uudelleen, vaan vain lataavat tarvittavat tiedot palvelimelta, mikä tekee niistä interaktiivisempia ja tuottavampia.
Myös viime aikoina suurta suosiota on saamassa WebSocket -tekniikka , joka ei vaadi jatkuvia pyyntöjä asiakkaalta palvelimelle, vaan luo kaksisuuntaisen yhteyden, jossa palvelin voi lähettää tietoja asiakkaalle ilman pyyntöä jälkimmäiseltä. Siten on mahdollista hallita sisältöä dynaamisesti reaaliajassa.
Verkkosovellusten luomiseen palvelinpuolella käytetään erilaisia tekniikoita ja mitä tahansa ohjelmointikieliä :
Nimi | Lisenssi | verkkopalvelin |
---|---|---|
A.S.P. | omistusoikeus | erikoistunut |
ASP.NET | omistusoikeus | erikoistunut |
C / C++ | vapaa | melkein mikä tahansa |
Java [4] | vapaa | monet, mukaan lukien ilmainen |
Perl | vapaa | melkein mikä tahansa |
PHP | vapaa | melkein mikä tahansa |
Python | vapaa | melkein mikä tahansa |
rubiini | vapaa | melkein mikä tahansa |
Nodejs | MIT-lisenssi | oma |
ASP.NET vNext | Apache 2 | melkein mikä tahansa [Toim. yksi] |
Asiakaspuolella käytetään: