Veb-qosımsha

**Veb-qosımsha** (yamasa **veb-baǵdarlama**) ‒ bul veb-texnologiyalar menen jaratılǵan hám veb-brauzer arqalı isleytuǵın qosımsha programma. Veb-qosımshalar 1990-jıllardıń aqırında payda boldı hám serverge statikalıq veb-betterden ayırmashılıǵı, sorawǵa dinamikalıq juwap dúziw imkaniyatın berdi.

Veb-qosımshalar ádette veb-server arqalı tarqatıladı. Veb-qosımshalar veb-brauzerler, klient interfeysi hám server maǵlıwmatları arasında baylanıs ornatıw ushın bir neshe hár túrli qatlamlı sistemalardı qollanadı. Hárbir sistema hár qıylı jollar menen islegenlikten, óziniń qollanıw tarawlarına iye. Biraq, baǵdarlamashılar islep shıǵıw barısında biliwi kerek bolǵan kóplegen qáwipsizlik qáwipleri bar; paydalanıwshı maǵlıwmatların qorǵaw ushın tiyisli ilajlar áhmiyetli.

Veb-qosımshalar kóbinese veb-qosımsha freymvorkin qollanıp qurıladı. Bir betli qosımshalar (SPA) hám progressiv veb-qosımshalar (PWA) - bul tegis navigaciya, offlayn qollaw hám tezirek óz-ara tásir sıyaqlı ózgesheliklerdi óz ishine alǵan, tuwma qosımshalarǵa uqsas paydalanıwshı tájiriybesin támiyinleytuǵın veb-qosımshalardı jaratıwdıń eki arxitekturalıq tásilleri bolıp tabıladı.

## Tariyxı
"Veb-qosımsha" túsinigi birinshi ret 1999-jılı shıǵarılǵan Java tiliniń Servlet Specifikaciyasınıń 2.2-versiyasında kirgizilgen. Sol waqıtta JavaScript hám XML álleqashan islep shıǵarılǵan edi, biraq XMLHttpRequest obekti tek ǵana Internet Explorer 5-te ActiveX obekti sıpatında kirgizilgen. 2000-jıllardıń baslarınan baslap, "Myspace (2003), Gmail (2004), Digg (2004), [hám] Google Maps (2005)" sıyaqlı qosımshalar ózleriniń klient táreplerin barǵan sayın interaktiv etip basladı. Veb-bet skripti pútkil veb-betti júklep almastan maǵlıwmatlardı saqlaw/alıw ushın server menen baylanısa aladı. Bul ámeliyat 2005-jılı Ajax dep atala basladı.

Klient-server sıyaqlı erterek esaplaw modellerinde qosımsha ushın qayta islew júklemesi serverdegi kod penen hárbir klientte jergilikli ornatılǵan kod arasında bólistirilgen edi. Basqasha aytqanda, qosımshanıń paydalanıwshı interfeysi retinde xızmet etetuǵın óziniń aldın ala kompilyaciyalanǵan klient baǵdarlaması bar edi hám onı hárbir paydalanıwshınıń jeke kompyuterine bólek ornatıw kerek edi. Qosımshanıń server tárepindegi kodın jańalaw ádette hárbir paydalanıwshı jumıs stanciyasına ornatılǵan klient tárepindegi kodtı da jańalawdı talap etti, bul qollaw qárejetlerin arttırdı hám ónimdarlıqtı tómenletti. Sonıń menen bir qatarda, qosımshanıń klient hám server komponentleri belgili bir kompyuter arxitekturası hám operaciyalıq sistemasına bekkem baylanıslı boldı, bul olardı basqa sistemalarǵa kóshiriwdi eń iri qosımshalardan basqa barlıǵı ushın qımbat etetuǵın edi.

Keyinirek, 1995-jılı, Netscape JavaScript dep atalatuǵın klient tárepindegi skript tilin tanıstırdı. Bul til baǵdarlamashılarǵa klient tárepinde isleytuǵın paydalanıwshı interfeysine dinamikalıq elementlerdi qosıwǵa múmkinshilik berdi. Tiykarınan, pútkil veb-betti jaratıw ushın serverge maǵlıwmat jiberiw ornına, júklep alınǵan bettiń engizilgen skriptleri kirgiziwdi tekseriw yamasa bettiń bólimlerin kórsetiw/jasırıw sıyaqlı hár qıylı wazıypalardı orınlay aladı.

"Progressiv veb-qosımshalar" termini 2015-jılı dizayner Frensis Berriman hám Google Chrome injeneri Aleks Rassel tárepinen oylap tabılǵan bolıp, zamanagóy brauzerleri tárepinen qollanılatuǵın jańa múmkinshiliklerden paydalanatuǵın qosımshalarǵa tiyisli. Bul qosımshalar dáslep veb-brauzer betinde isleydi, biraq keyin tolıǵı menen oflayn rejiminde isley aladı hám brauzerge qosımshanıń URL mánzilin kirgizbesten iske qosıla aladı.

## Strukturası
Dástúrli kompyuter qosımshaları ádette bir qatlamlı bolıp, tek klient mashinasında jaylasadı. Buǵan qarama-qarsı, veb-qosımshalar óz tábiyatınan kóp qatlamlı arxitekturanı qollaydı. Kóp variantlar múmkin bolsa da, eń keń tarqalǵan struktura úsh qatlamlı qosımsha bolıp tabıladı. Onıń eń keń tarqalǵan formasında úsh qatlam kóriniw, qosımsha hám saqlaw dep ataladı. Birinshi qatlam, kóriniw, veb-brauzerdiń ózine tiyisli. Ekinshi qatlam dinamikalıq veb-kontent texnologiyasın qollanatuǵın hár qanday mexanizmge (mısalı, ASP, CGI, ColdFusion, Dart, JSP/Java, Node.js, PHP, Python yamasa Ruby on Rails) tiyisli. Úshinshi qatlam maǵlıwmatlardı saqlaytuǵın hám paydalanıwshı interfeysiniń strukturasın anıqlaytuǵın maǵlıwmatlar bazasına tiyisli. Tiykarınan, úsh qatlamlı sistemanı qollanǵanda, veb-brauzer mexanizmge sorawlar jiberedi, al mexanizm olarǵa maǵlıwmatlar bazasına sorawlar jiberip hám jańalawlar arqalı xızmet kórsetedi hám paydalanıwshı interfeysin jaratadı.

3-qatlamlı sheshim quramalı qosımshalardı qollanǵanda jetkiliksiz bolıwı múmkin hám n-qatlamlı usıl menen almastırılıwı kerek bolıwı múmkin; bunıń eń úlken paydası - biznes logikanıń (qosımsha qatlamında jaylasqan) maydalaw modeline bóliniwi. Basqa bir paydası - integraciya qatlamın qosıw bolıp, ol maǵlıwmatlar qatlamın ajıratadı hám maǵlıwmatlarǵa kiriwge qolaylı interfeys beredi. Mısalı, klient maǵlıwmatlarına maǵlıwmatlar bazasındaǵı klient kestesine tikkeley SQL sorawın jiberiw ornına "list_clients()" funkciyasın shaqırıw arqalı kiriletuǵın edi. Bul basqa qatlamlarǵa hesh qanday ózgeris kirgizbesten tiykarǵı maǵlıwmatlar bazasın almastırıwǵa múmkinshilik beredi.

Veb-qosımshanı eki qatlamlı arxitektura sıpatında kóretuǵınlar da bar. Bul barlıq jumıstı orınlaytuǵın hám "aqılsız" serverge sorawlar jiberetuǵın "aqıllı" klient yamasa "aqıllı" serverge tiykarlanǵan "aqılsız" klient bolıwı múmkin. Klient kóriniw qatlamın basqaratuǵın edi, serverde maǵlıwmatlar bazası (saqlaw qatlamı) bolar edi, al biznes logika (qosımsha qatlamı) olardıń birewinde yamasa ekewinde de bolar edi. Bul qosımshalardıń masshtabın keńeytedi hám kórsetiw menen maǵlıwmatlar bazasın ajıratsa da, ol ele de qatlamlardıń haqıyqıy qánigelesiwine jol qoymaydı, sonlıqtan kópshilik qosımshalar bul modelden asıp ketedi. 

## Qáwipsizlik
Bul túrdegi qosımshalardaǵı qáwipsizlik buzılıwları úlken qáweter tuwdıradı, óytkeni bul kárxana informaciyası hám jeke klient maǵlıwmatların qamtıwı múmkin. Bul aktivlerdi qorǵaw hár qanday veb-qosımshanıń áhmiyetli bólegi bolıp, islep shıǵıw processine kirgiziliwi kerek bolǵan bir neshe tiykarǵı operaciyalıq tarawlar bar. Buǵan autentifikaciya, avtorizaciya, aktivlerdi basqarıw, kirgiziw maǵlıwmatların qayta islew hám jurnal alıp barıw hám audit processleri kiredi. Qosımshalarǵa qáwipsizlikti baslawdan kirgiziw kóbinese uzaq múddetli keleshekte nátiyjeli hám az buzıwshı boladı.

## Islep shıǵıw
Veb-qosımshalardı jazıw veb-qosımsha freymvorkların paydalanıw arqalı ápiwayılastırıladı. Bul freymvorklar islep shıǵıw toparına paydalanıwshılardı basqarıw sıyaqlı ulıwma islep shıǵıw máselelerin sheshiwge májbúr bolmastan, óz maqsetlerine unamlı bolǵan qosımshanıń bólimlerine dıqqat awdarıwǵa múmkinshilik beriw arqalı tez qosımshalardı islep shıǵıwdı jeńillestiredi.

Sonıń menen bir qatarda, Internet operaciyalıq sistemalarında qosımshalardı islep shıǵıw imkaniyatı bar, biraq házirgi waqıtta bul modelge sáykes keletuǵın kóp jaramlı platformalar joq.

## Derekler

## Sırtqı siltemeler

* HTML5 Draft recommendation, changes to HTML and related APIs to ease authoring of web-based applications.
* Web Applications Working Group at the World Wide Web Consortium (W3C)
* PWAs on Web.dev by Google Developers.

__BÖLİDİMÖNDEMEW__