Веб-апликација
Веб-апликација је апликација којој се приступа од стране корисника преко мреже као што је интернет или интранет. Термин такође означава и примену компјутерског софтвера који је кодиран у веб-претраживачу који подржава програмске језике (као што су Јаваскрипт, у комбинацији са језиком који служи за обележавање као што је -{HTML}-) и ослања се на заједничком веб-претраживачу да донесе извршну апликацију.

Веб-апликације су популарне због свеприсутности веб-претраживача, а погодност коришћења веб-прегледача као клијента се понекад зове „танки/мршави клијент”. Способност да се ажурира и одржава веб-апликација без дистрибуције и инсталирања софтвера на хиљаде потенцијалних клијентских рачунара је кључни разлог за њихову популарност. Уобичајене веб-апликације укључују слање поште, интернет трговину, аукцију, те многе друге функције.

Историја 
У ранијим рачунарским моделима, нпр. у клијент-сервер периоду, захтеви за апликације су дељени између кода који је на серверу и кода који је инсталиран на сваком клијентском рачунару. Другим речима, апликација има свој клијентски програм, а то је његов кориснички интерфејс и мора да се посебно инсталира на личном рачунару сваког корисника. Надоградња кода на серверској страни ће обично захтевати и надоградњу кода на клијентској страни, дајући на тај начин повољнију цену и смањујући продуктивност.

Насупрот томе, веб-апликације користе веб-документе написане у неком од стандардних формата као што су -{HTML}- и -{ЈаvaScript}-, који су подржани од стране различитих веб-претраживача. Веб-апликација се може сматрати као специфична варијанта клијент-сервер софтвера, где клијентски софтвер преузима на машини приликом посете одговарајуће веб-странице, применом стандардних поступака као што је -{HTTP}- протокол. Током сесије, веб-претраживач тумачи и приказује странице, те делује као универзални клијент за било коју веб-апликацију.

У почетку веба, свака веб-страница достављала се клијенту као статички документ; редослед страница може да обезбеди интерактивно искуство уколико је кориснику унос враћен преко елемената веб-формулара уграђеног у -{HTML}- страници.

Године 1995. Нетскејп (енг. Netscape) је увео скрипт који се извршава на страни клијента, познат као JavaScript. Дакле, уместо слања података на сервер да би генерисали целу страницу, уграђени скриптови са преузете странице могу да обављају различите задатке, као што су валидација уноса или приказивање/скривање делова страница.

Године 1996, макромедија уводи Флеш () — векторску графику која се може додати претраживачу као додатак од. плагин (), како би се омогућио приказ анимације на веб-страници. То омогућава употребу скрипт-језика за извршавање програма на страни клијента без потребе за комуникацију са сервером.

Године 1999, концепт „веб-апликација” је уведен у језику Јава, kao -{Servlet Specification}- верзија 2.2. У то време и -{JavaScript}- и -{XML}- су већ били развијени, али -{Ajax}- још увек није постојао.

Године 2005, настаје термин -{Ајаx}- заједно са апликацијама као што су Џимејл, а клијентске стране поново бивају повезане. Скриптови почињу да комуницирају са сервером тако што ће складиштити/преузимати податаке без преузимања целе веб-странице.

Године 2011, -{HTML5}- бива завршен, са графичким и мултимедијалним могућностима без потребе за додацима на страни клијента. -{HTML5}- је обогатио семантички садржај докумената. -{WebGL API}- је отворио пут напредној 3D графици базираној на -{HTML5}- и -{ЈаvaScript}- језику.

Интерфејси 
Кроз -{Јаva}-, -{ЈаvaScript}-, -{DHTML}-, -{Flash}-, -{Silverlight}- и друге технологије, омогућене су методе, као што су цртање на екрану, репродукција звука те приступ тастатури и мишу. Многи сервиси су искомбиновали све ово у познатом интерфејсу који је близак изгледу оперативног система. Технике опште намене као што је „превуци-и-пусти” ове технологије такође подржавају. Веб-програмери често користе скриптове на клијентској страни да допринесу функционалности, а посебно да се створи интерактивни доживљај који не захтева освежавање страница. Технологије су развијене тако да координирају скриптове на клијентској страни са технологијама на серверској страни, као што је -{РНР}-. -{Ајах}-, техника за веб-развој која користи комбинацију различитих технологија, пример је стварања интерактивног искуства.

Структура 
Апликације су обично подељене на логичке делове под називом „слојеви”, где је сваком слоју додељена улога. Традиционалне апликације су сачињене само од једног слоја, који се налази на клијентској машини, али природно веб-апликације подешавју себе за -{n}--слојни приступ. Иако су могуће многе варијације, најчешћа структура је трослојна апликација. У својој најуобичајенијој форми, три слоја се називају презентација, апликација и складиштење, у овом редоследу. Веб-претраживач је први слој (презентација); као покретач који користи неке технологије са динамичким веб-садржајем (као што су -{ASP}-, -{ASP.NET}-, -{CGI}-, -{ColdFusion}-, -{JSP/Java}-, -{PHP}-, -{Perl}-, -{Python}-, -{Ruby}-) је средњи слој (апликациона логика), а база података је трећи слој (складиштење). Веб-претраживач шаље захтеве средњем слоју, који их опслужује прављењем упита и ажурирањем базе података, те генерише кориснички интерфејс.

За сложеније апликације, трослојно решење може бити недовољно, па је потребно да се користи -{n}--слојни приступ, где је највећа добит дељење апликационог слоја, који почива на самом апликативном слоју. Још једна предност је додавање интеграционог слоја који раздваја слој података од осталих слојева, пружајући интерфејс за приступ подацима кога је лако користити.

Постоје неки који -{Wide Web}- апликацију виде као двослојну архитектуру. То може бити „паметни” клијент који обавља све послове и упите и „глупи” сервер, клијент који се ослања на „паметни” сервер. Клијент би се бавио презентационим слојем, сервер базом података, а апликациони слој ће бити на једном од њих (или на оба). То повећава стабилност апликација и раздваја екран и базу података, али још увек не омогућава праву специјализацију слојева, тако да већина апликација прераста овај модел.

Коришћење у пословне сврхе 
Нова стратегија за компаније апликативног софтвера је да омогући приступ веб-софтверу који је претходно дистрибуиран као локална апликација. У зависности од врсте апликације, може се захтевати развој потпуно другачијих интерфејса базираних на претраживачу или само прилагођавање постојеће апликације да користи различите презентационе технологије. Ови програми омогућавају кориснику да плаћа месечну или годишњу накнаду за коришћење софтверских апликација, без потребе да га инсталира на локалном диску. Компанија која прати ову стратегију је позната као провајдер услуга апликација (), која тренутно привлачи велику пажњу у софтверској индустрији.

Нарушавања безбедности за ове врсте апликација су велики проблем јер могу да укључују и информације предузећа као и приватне податаке корисника. Заштита имовине је важан део сваке веб-апликације и постоје неке кључне оперативне области које морају бити укључене у процес развоја. То укључује процесе за аутентификацију, ауторизацију, логовање и др.

Писање веб-апликација 
Писање веб-апликација се често поједностављује софтверима отвореног кода као што су -{Django}-, -{Ruby on Rails}- и сл., који представљају развојно окружење веб-апликација. Они омогућавају брз развој апликација тако што дозвољавају развојном тиму да се фокусира на делове њиховое апликације које су јединствене за њихове циљеве, без решавања уобичајених проблема у развоју. Иако су многи од ових развојних окружења отвореног кода, они нису обавезни за коришћење.

Употреба развојних окружења у веб-апликацијама често може да смањи број грешака у програму, чинећи код једноставнијим и омогућавајући једном тиму да се концентрише на равојно окружење, док се други фокусирају на одређене случајеве коришћења. У апликацијама које су изложене сталном хаковању на интернету, проблеми везани за безбедност могу бити последица грешке у програму. Развојна окружења могу промовисати коришћење најбољих пракси, као што су -{GET}- после -{POST}--а.

Поред тога, постоји потенцијал за развој апликација на интернет оперативним системима, иако тренутно нема пуно одрживих платформи које одговарају овом моделу.

Примери апликација 
Примери веб-апликација су једноставни канцеларијски софтвери (програми за обраду текста, онлајн унакрсне табеле и презентациони алати), али ту спадају и неке напредније апликације као што су компјутерски дизајн, видео монтажа и др.

Предности 
 Веб-апликације не захтевају сложену „избаци” процедуру за употребу у великим организацијама. Компатибилни интернет претраживач је све што је потребно.
 Претраживачи апликације обично захтевају мало или нимало простора на клијенту.
 Они не захтевају поступак надоградње јер се све нове функције спроводе на серверу и аутоматски достављају корисницима.
 Веб-апликације се лако интегришу у веб-процедурама на серверској страни, као што су имејл и претраживање.
 Они такође пружају компатибилност на више платформи у већини случајева (нпр. -{Windows}-, -{Mac}-, -{Linux}- итд.) јер раде у оквиру прозора веб-претраживача.

Мане 
 Веб-апликације захтевају апсолутно компатибилне веб-претраживаче. Ако продавац прегледача одлучи да не имплементира одређене функције или напусти одређену платформу или верзију оперативног система, то може утицати на велики број корисника.
 Апликације претраживача се ослањају на приступ датотекама на удаљеним серверима преко интернета. Стога, када се веза прекине, апликација престаје бити употребљива. Међутим, ако се користи -{HTML5 API}- као што је офлајн кеширање веб-апликација, може се преузети и инсталирати на локалном нивоу за офлајн коришћење.
 Будући да многе веб-апликације нису отвореног кода, постоји губитак флексибилности, не дозвољавајући прилагођавања на софтверу и спречавајући кориснике од покретања апликација офлајн (у већини случајева). Међутим, ако је лиценциран, власнички софтвер се може прилагодити и покренути на жељени сервер законитих права.
 Они у потпуности зависе од могућности сервера да доставља апликације. Ако предузеће оде у стечај а сервер се искључи, корисници имају мало приступа. Традиционално инсталиран софтвер чува функционалност и након пропасти компаније која га је произвела (мада неће бити апдејта/ажурирања или пружања услуга).
 Исто тако, компанија има много већу контролу над софтвером и функционалности. Они могу да избаце нове функције кад год желе, чак и ако корисник жели да сачека док се багови/грешке не отклоне пре надоградње. Опција једноставног прескакања слабије верзије софтвера често није доступна. Компанија може убацивати неке нежељене функције корисницима или смањити трошкове смањењем протока. Наравно, компаније ће покушати да задрже поверење својих клијената, али корисници веб-апликација имају у оваквим случајевима мање опција осим уколико произвођач понуди бољи производ.
 Компанија може — теоретски — да прати било шта што корисници раде. То може изазвати проблеме приватности.

Види још 
 Веб 2.0

Референце 

Софтверска архитектура
Веб развој
Веб-апликација је апликација којој се приступа од стране корисника преко мреже као што је интернет или интранет . Термин такође означава и примену компјутерског софтвера који је кодиран у веб-претраживачу који подржава програмске језике ( као што су Јаваскрипт , у комбинацији са језиком који служи за обележавање као што је -{ HTML }- ) и ослања се на заједничком веб-претраживачу да донесе извршну апликацију . Веб-апликације су популарне због свеприсутности веб-претраживача , а погодност коришћења веб-прегледача као клијента се понекад зове „ танки / мршави клијент ” . Способност да се ажурира и одржава веб-апликација без дистрибуције и инсталирања софтвера на хиљаде потенцијалних клијентских рачунара је кључни разлог за њихову популарност . Уобичајене веб-апликације укључују слање поште , интернет трговину , аукцију , те многе друге функције . Историја У ранијим рачунарским моделима , нпр. у клијент-сервер периоду , захтеви за апликације су дељени између кода који је на серверу и кода који је инсталиран на сваком клијентском рачунару . Другим речима , апликација има свој клијентски програм , а то је његов кориснички интерфејс и мора да се посебно инсталира на личном рачунару сваког корисника . Надоградња кода на серверској страни ће обично захтевати и надоградњу кода на клијентској страни , дајући на тај начин повољнију цену и смањујући продуктивност . Насупрот томе , веб-апликације користе веб-документе написане у неком од стандардних формата као што су -{ HTML }- и -{ ЈаvaScript }- , који су подржани од стране различитих веб-претраживача . Веб-апликација се може сматрати као специфична варијанта клијент-сервер софтвера , где клијентски софтвер преузима на машини приликом посете одговарајуће веб-странице , применом стандардних поступака као што је -{ HTTP }- протокол . Током сесије , веб-претраживач тумачи и приказује странице , те делује као универзални клијент за било коју веб-апликацију . У почетку веба , свака веб-страница достављала се клијенту као статички документ ; редослед страница може да обезбеди интерактивно искуство уколико је кориснику унос враћен преко елемената веб-формулара уграђеног у -{ HTML }- страници . Године Нетскејп ( енг . Netscape ) је увео скрипт који се извршава на страни клијента , познат као JavaScript . Дакле , уместо слања података на сервер да би генерисали целу страницу , уграђени скриптови са преузете странице могу да обављају различите задатке , као што су валидација уноса или приказивање / скривање делова страница . Године макромедија уводи Флеш ( ) — векторску графику која се може додати претраживачу као додатак од. плагин ( ) , како би се омогућио приказ анимације на веб-страници . То омогућава употребу скрипт-језика за извршавање програма на страни клијента без потребе за комуникацију са сервером . Године концепт „ веб-апликација ” је уведен у језику Јава , kao -{ Servlet Specification }- верзија2 . У то време и -{ JavaScript }- и -{ XML }- су већ били развијени , али -{ Ajax }- још увек није постојао . Године настаје термин -{ Ајаx }- заједно са апликацијама као што су Џимејл , а клијентске стране поново бивају повезане . Скриптови почињу да комуницирају са сервером тако што ће складиштити / преузимати податаке без преузимања целе веб-странице . Године -{ HTML5 }- бива завршен , са графичким и мултимедијалним могућностима без потребе за додацима на страни клијента. -{ HTML5 }- је обогатио семантички садржај докумената. -{ WebGL API }- је отворио пут напредној графици базираној на -{ HTML5 }- и -{ ЈаvaScript }- језику . Интерфејси Кроз -{ Јаva }- , -{ ЈаvaScript }- , -{ DHTML }- , -{ Flash }- , -{ Silverlight }- и друге технологије , омогућене су методе , као што су цртање на екрану , репродукција звука те приступ тастатури и мишу . Многи сервиси су искомбиновали све ово у познатом интерфејсу који је близак изгледу оперативног система . Технике опште намене као што је „ превуци-и-пусти ” ове технологије такође подржавају . Веб-програмери често користе скриптове на клијентској страни да допринесу функционалности , а посебно да се створи интерактивни доживљај који не захтева освежавање страница . Технологије су развијене тако да координирају скриптове на клијентској страни са технологијама на серверској страни , као што је -{ РНР } -. -{ Ајах }- , техника за веб-развој која користи комбинацију различитих технологија , пример је стварања интерактивног искуства . Структура Апликације су обично подељене на логичке делове под називом „ слојеви ” , где је сваком слоју додељена улога . Традиционалне апликације су сачињене само од једног слоја , који се налази на клијентској машини , али природно веб-апликације подешавју себе за -{ n } --слојни приступ . Иако су могуће многе варијације , најчешћа структура је трослојна апликација . У својој најуобичајенијој форми , три слоја се називају презентација , апликација и складиштење , у овом редоследу . Веб-претраживач је први слој ( презентација ) ; као покретач који користи неке технологије са динамичким веб-садржајем ( као што су -{ ASP }- , -{ ASP.NET }- , -{ CGI }- , -{ ColdFusion }- , -{ JSP / Java }- , -{ PHP }- , -{ Perl }- , -{ Python }- , -{ Ruby }- ) је средњи слој ( апликациона логика ) , а база података је трећи слој ( складиштење ) . Веб-претраживач шаље захтеве средњем слоју , који их опслужује прављењем упита и ажурирањем базе података , те генерише кориснички интерфејс . За сложеније апликације , трослојно решење може бити недовољно , па је потребно да се користи -{ n } --слојни приступ , где је највећа добит дељење апликационог слоја , који почива на самом апликативном слоју . Још једна предност је додавање интеграционог слоја који раздваја слој података од осталих слојева , пружајући интерфејс за приступ подацима кога је лако користити . Постоје неки који -{ Wide Web }- апликацију виде као двослојну архитектуру . То може бити „ паметни ” клијент који обавља све послове и упите и „ глупи ” сервер , клијент који се ослања на „ паметни ” сервер . Клијент би се бавио презентационим слојем , сервер базом података , а апликациони слој ће бити на једном од њих ( или на оба ) . То повећава стабилност апликација и раздваја екран и базу података , али још увек не омогућава праву специјализацију слојева , тако да већина апликација прераста овај модел . Коришћење у пословне сврхе Нова стратегија за компаније апликативног софтвера је да омогући приступ веб-софтверу који је претходно дистрибуиран као локална апликација . У зависности од врсте апликације , може се захтевати развој потпуно другачијих интерфејса базираних на претраживачу или само прилагођавање постојеће апликације да користи различите презентационе технологије . Ови програми омогућавају кориснику да плаћа месечну или годишњу накнаду за коришћење софтверских апликација , без потребе да га инсталира на локалном диску . Компанија која прати ову стратегију је позната као провајдер услуга апликација ( ) , која тренутно привлачи велику пажњу у софтверској индустрији . Нарушавања безбедности за ове врсте апликација су велики проблем јер могу да укључују и информације предузећа као и приватне податаке корисника . Заштита имовине је важан део сваке веб-апликације и постоје неке кључне оперативне области које морају бити укључене у процес развоја . То укључује процесе за аутентификацију , ауторизацију , логовање и др . Писање веб-апликација Писање веб-апликација се често поједностављује софтверима отвореног кода као што су -{ Django }- , -{ Ruby on Rails }- и сл . , који представљају развојно окружење веб-апликација . Они омогућавају брз развој апликација тако што дозвољавају развојном тиму да се фокусира на делове њиховое апликације које су јединствене за њихове циљеве , без решавања уобичајених проблема у развоју . Иако су многи од ових развојних окружења отвореног кода , они нису обавезни за коришћење . Употреба развојних окружења у веб-апликацијама често може да смањи број грешака у програму , чинећи код једноставнијим и омогућавајући једном тиму да се концентрише на равојно окружење , док се други фокусирају на одређене случајеве коришћења . У апликацијама које су изложене сталном хаковању на интернету , проблеми везани за безбедност могу бити последица грешке у програму . Развојна окружења могу промовисати коришћење најбољих пракси , као што су -{ GET }- после -{ POST } --а . Поред тога , постоји потенцијал за развој апликација на интернет оперативним системима , иако тренутно нема пуно одрживих платформи које одговарају овом моделу . Примери апликација Примери веб-апликација су једноставни канцеларијски софтвери ( програми за обраду текста , онлајн унакрсне табеле и презентациони алати ) , али ту спадају и неке напредније апликације као што су компјутерски дизајн , видео монтажа и др . Предности Веб-апликације не захтевају сложену „ избаци ” процедуру за употребу у великим организацијама . Компатибилни интернет претраживач је све што је потребно . Претраживачи апликације обично захтевају мало или нимало простора на клијенту . Они не захтевају поступак надоградње јер се све нове функције спроводе на серверу и аутоматски достављају корисницима . Веб-апликације се лако интегришу у веб-процедурама на серверској страни , као што су имејл и претраживање . Они такође пружају компатибилност на више платформи у већини случајева ( нпр. -{ Windows }- , -{ Mac }- , -{ Linux }- итд . ) јер раде у оквиру прозора веб-претраживача . Мане Веб-апликације захтевају апсолутно компатибилне веб-претраживаче . Ако продавац прегледача одлучи да не имплементира одређене функције или напусти одређену платформу или верзију оперативног система , то може утицати на велики број корисника . Апликације претраживача се ослањају на приступ датотекама на удаљеним серверима преко интернета . Стога , када се веза прекине , апликација престаје бити употребљива . Међутим , ако се користи -{ HTML5 API }- као што је офлајн кеширање веб-апликација , може се преузети и инсталирати на локалном нивоу за офлајн коришћење . Будући да многе веб-апликације нису отвореног кода , постоји губитак флексибилности , не дозвољавајући прилагођавања на софтверу и спречавајући кориснике од покретања апликација офлајн ( у већини случајева ) . Међутим , ако је лиценциран , власнички софтвер се може прилагодити и покренути на жељени сервер законитих права . Они у потпуности зависе од могућности сервера да доставља апликације . Ако предузеће оде у стечај а сервер се искључи , корисници имају мало приступа . Традиционално инсталиран софтвер чува функционалност и након пропасти компаније која га је произвела ( мада неће бити апдејта / ажурирања или пружања услуга ) . Исто тако , компанија има много већу контролу над софтвером и функционалности . Они могу да избаце нове функције кад год желе , чак и ако корисник жели да сачека док се багови / грешке не отклоне пре надоградње . Опција једноставног прескакања слабије верзије софтвера често није доступна . Компанија може убацивати неке нежељене функције корисницима или смањити трошкове смањењем протока . Наравно , компаније ће покушати да задрже поверење својих клијената , али корисници веб-апликација имају у оваквим случајевима мање опција осим уколико произвођач понуди бољи производ . Компанија може — теоретски — да прати било шта што корисници раде . То може изазвати проблеме приватности . Види још Веб0 Референце Софтверска архитектура Веб развој