Veb freymvork (VF) yamasa veb qollanba freymvorki (VQF) ‒ bul veb qollanbalardı, sonıń ishinde veb xızmetlerdi, veb resurslardı hám veb API lerdi rawajlandırıwdı qollap-quwatlaw ushın arnalǵan programmalıq támiynat freymvorki. Veb freymvorkler Dúnya júzilik torda veb qollanbalardı dúziw hám jaylastırıwdıń standart usılın usınadı. Veb freymvorkler veb baǵdarlamalastırıwda ádettegi orınlanatuǵın is-háreketler menen baylanıslı qosımsha jumıslardı avtomatlastırıwǵa baǵdarlanǵan. Mısalı, kóplegen veb freymvorkler maǵlıwmatlar bazasına kiriw, shablonlar freymvorkleri hám sessiyalardı basqarıw ushın kitapxanalardı usınadı hám olar kóbinese kodtı qayta qollanıwdı xoshametleydi. Olar kóbinese dinamikalıq veb saytlardı rawajlandırıwǵa baǵdarlanǵan bolsa da, statikalıq veb saytlarǵa da qollanılıwı múmkin.

Dúnya júzilik tordıń dizaynı tiykarınan dinamikalıq bolmaǵanlıqtan, dáslepki gipertekst veb serverlerde járiyalanǵan qoldan kodlanǵan HTML tekst fayllarınan ibarat edi. Járiyalanǵan betlerge qanday da bir ózgerisler kirgiziw betlerdiń avtorı tárepinen ámelge asırılıwı kerek edi. 1993-jılı paydalanıwshı kirgizgen maǵlıwmatlardı sáwlelendiretuǵın dinamikalıq veb betti támiyinlew ushın sırtqı qollanbalardı veb serverler menen baylanıstırıw ushın Ulıwma shlyuz interfeysi (CGI) standartı engizildi.[1]

CGI interfeysiniń dáslepki ámelge asırılıwları ádette server júklemesine jaman tásir kórsetetuǵın edi, sebebi hár bir soraw ayırım processti baslaytuǵın edi.[2] Keyingi ámelge asırılıwlar server resurslarındaǵı iz qaldırıwdı kemeytiw hám ulıwma ónimdarlıqtı arttırıw ushın basqa usıllar menen birge turaqlı processlerden paydalanadı.

1995-jılı tolıq integraciyalanǵan server/til rawajlandırıw ortalıqları birinshi ret payda boldı hám ColdFusion, PHP hám Active Server Pages sıyaqlı jańa veb-arnawlı tiller engizildi.

Dinamikalıq veb betlerdi jaratıw ushın tillerdiń kópshiliginde ulıwma tapsırmalardı orınlawǵa járdem beretuǵın kitapxanalar bar bolsa da, veb qollanbalar kóbinese belgili tapsırmalar ushın arnawlı kitapxanalardı talap etedi, mısalı, HTML jaratıw ushın (mısalı, Jakarta Faces).

1990-jıllardıń aqırında, jetilisken, "tolıq stek" freymvorklar payda bola basladı, olar kóbinese veb rawajlandırıwshılar paydalanıwı ushın bir pútin baǵdarlamalıq stekke veb rawajlandırıw ushın paydalı bolǵan bir neshe kitapxanalardı jıynadı.

Freymvork arxitekturalarınıń túrleri:

Kópshilik veb freymvorklar model-kóriniw-basqarıwshı (MVC) úlgisine tiykarlanǵan.

Model–kóriniw–basqarıwshı (MVC)

Kóplegen freymvorklar maǵlıwmat modelin biznes qaǵıydalarǵa ("basqarıwshı") hám paydalanıwshı interfeysine ("kóriniw") ajıratıw ushın MVC (ingl. Model–view–controller. qısq. MVC) arxitekturalıq úlgisin qollanadı. Bul ádette jaqsı ámeliyat dep esaplanadı, sebebi ol kodtı modullestiredi, kodtı qayta qollanıwdı xoshametleydi hám bir neshe interfeyslerdi qollanıwǵa múmkinshilik beredi. Veb qollanbalarda bul hár qıylı kóriniwlerdi kórsetiwge múmkinshilik beredi, mısalı, mobil hám kompyuter brauzerleri ushın hár túrli veb betlerdi kórsetiw yamasa mashina oqıy alatuǵın veb servis interfeyslerin usınıw.

Iyteriwge hám tartıwǵa tiykarlanǵan

Kópshilik MVC freymvorkları "háreket tiykarındaǵı" dep te atalatuǵın iyteriw tiykarındaǵı arxitekturanı qollanadı. Bul freymvorklar kerekli qayta islewdi orınlaytuǵın háreketlerdi paydalanadı, sońınan maǵlıwmatlardı nátiyjelerdi kórsetiw ushın kóriniw qatlamına "iyteredi".[3] Oǵan alternativa - tartıw tiykarındaǵı arxitektura, ol geyde "komponent tiykarındaǵı" dep te ataladı. Bul freymvorklar kóriniw qatlamınan baslanadı, ol kerek bolǵanda bir neshe basqarıwshılardan nátiyjelerdi "tarta" aladı. Bul arxitekturada bir kóriniw menen bir neshe basqarıwshı baylanıslı bolıwı múmkin.

Úsh qatlamlı shólkemlestiriw

Úsh qatlamlı shólkemlestiriwde, qollanbalar úsh fizikalıq qatlam dógereginde qurıladı: klient, qollanba hám maǵlıwmatlar bazası.[4][5][6][7] Maǵlıwmatlar bazası ádette RDBMS boladı. Qollanba biznes logikasın óz ishine aladı, serverde isleydi hám klient penen HTTP arqalı baylanısadı.[8] Veb qollanbalardaǵı klient - bul qollanba qatlamı tárepinen jaratılǵan HTML-di isletetuǵın veb brauzer.[9][10] Bul termin MVC menen shatastırılmawı kerek, sebebi úsh qatlamlı arxitekturadan parqlı, MVC-de biznes logikanı "orta qatlam" bolǵan basqarıwshıdan uzaq uslaw jaqsı ámeliyat dep esaplanadı.[11][12]

Freymvork qollanbaları

Freymvorklar bir programmalastırıw tiline tiykarlanǵan internet qollanbaların jaratıwdı qollaw ushın qurılǵan. Olar ulıwma maqsetli qurallardan, mısalı, belgili bir tildiń múmkinshiliklerin keńeytetuǵın Zend Framework hám Ruby on Rails sıyaqlılardan baslap, belgili bir paydalanıwshı qollanbası dógereginde qurılǵan ana tilde programmalanatuǵın paketlerge, mısalı, kontentti basqarıw sistemaları (CMS), ayırım mobil programmalastırıw quralları hám ayırım portal qurallarına shekem boladı.[13]

Ulıwma maqsetli veb-sayt freymvorkları

Veb freymvorklar brauzerler hám HTTP sıyaqlı halatsız protokollardıń arxitekturalıq qaǵıydalarına muwapıq islewi kerek. Veb betler server tárepinen jetkerip berilip, keyin brauzer tárepinen JavaScript járdeminde ózgertiliwi múmkin. Eki usıldıń da óz artıqmashlıqları hám kemshilikleri bar.

Server tárepindegi bet ózgerisleri ádette bettiń jańalanıwın talap etedi, biraq hár qanday tildi qollanıwǵa hám kóbirek esaplaw quwatın paydalanıwǵa múmkinshilik beredi. Klient tárepindegi ózgerisler bettiń kishi bóleklerin jańalawǵa múmkinshilik beredi, bul desktop qollanbasına uqsaydı, biraq tek JavaScript penen sheklengen hám paydalanıwshınıń brauzerinde isleydi, onıń esaplaw quwatı sheklengen bolıwı múmkin. Ádette usı eki usıldıń qanday da bir aralaspası qollanıladı.[14] JavaScript ti keń qollanatuǵın hám tek bettiń bólimlerin jańalaytuǵın qollanbalar bir betli qollanbalar dep ataladı hám ádette kodtı shólkemlestiriw ushın klient tárepindegi JavaScript veb freymvorkin qollanadı.

Server tárep

  • Apache Wicket
  • ASP.NET Core
  • CakePHP
  • Catalyst
  • CodeIgniter
  • CppCMS
  • Django
  • Express.js
  • Flask
  • Grails
  • Jam.py
  • Laravel
  • Mojolicious
  • Pop PHP Framework
  • Phoenix
  • Ruby on Rails
  • Sails.js
  • Symfony
  • Spring MVC
  • Wt (web toolkit)
  • Yii
  • Zend Framework

Klient tárep

Mısallar Backbone.js, AngularJS, Angular, Ember.js, ReactJS, jQuery UI, Svelte hám Vue.js ti óz ishine aladı.[15]

Ózgeshelikleri

Freymvorklar ádette programmanıń basqarıw aǵımın belgileydi hám hár qıylı waqıyalardı ashıp beriw arqalı freymvork paydalanıwshısına usı aǵımǵa "qosılıwǵa" múmkinshilik beredi.[16] Basqarıwdıń bul "inversiya" dizayn úlgisi freymvorktiń anıqlawshı principi dep esaplanadı hám komanda ushın ulıwma aǵımdı engiziw arqalı kodqa payda keltiredi, onı hámme uqsas usıllarda ózgertiwi múmkin.[16] Mısalı, Ruby dıń Sinatra sıyaqlı ayırım keń tarqalǵan "mikrofreymvorklar" (olar Express.js ke ilham bergen) HTTP sorawlarına shekem hám onnan keyin "middleware" funkciyaların qosıwǵa múmkinshilik beredi. Bul middleware funkciyaları hár qanday nárse bolıwı múmkin hám paydalanıwshıǵa jurnal jazıwdı, autentifikaciya hám sessiyanı basqarıwdı hám qayta baǵdarlawdı anıqlawǵa imkaniyat beredi.[17]

Veb shablon sisteması

Keshlew

Veb keshlew - bul veb hújjetlerdi keshlew bolıp, onıń maqseti tarmaq ótkizgishligin paydalanıwdı, server júklemesin hám seziletuǵın "keshigiwdi" azaytıw. Veb kesh ózi arqalı ótetuǵın hújjetlerdiń kóshirmelerin saqlaydı; eger belgili shártler orınlansa, keyingi sorawlar keshten qanaatlandırılıwı múmkin. Ayırım qollanba freymvorkları hújjetlerdi keshlew hám betti tayarlawdıń hár qıylı basqıshlarınan ótip ketiw mexanizmlerin usınadı, mısalı, maǵlıwmatlar bazasına kiriw yamasa shablondı interpretaciya qılıw.

Qáwipsizlik

Ayırım veb freymvorklar autentifikaciya hám avtorizaciya freymvorkları menen birgelikte keledi, olar veb serverge qollanba paydalanıwshıların anıqlawǵa hám belgili kriteriyler tiykarında funkciyalarǵa kiriwdi sheklewge múmkinshilik beredi. Drupal - bul betlerge rol tiykarında kiriwdi támiyinleytuǵın hám paydalanıwshılardı dúziw hám olarǵa roller beriw ushın vebke-tiykarlanǵan interfeysti usınatuǵın mısallardıń biri.

Maǵlıwmatlar bazasına kiriw, kartalaw hám konfiguraciyalaw

Kóplegen veb freymvorklar maǵlıwmatlar bazası bekendine birlesken API dúzedi, bul veb qollanbalarǵa hesh qanday kod ózgerislerisiz hár qıylı maǵlıwmatlar bazaları menen islewge múmkinshilik beredi hám programmistlerge joqarı dárejeli koncepciyalar menen islewge imkaniyat beredi. Bunnan tısqarı, ayırım obyektke baǵdarlanǵan freymvorklar obyektlerdi kortejlerge kartalaytuǵın obekt-relyaciyalıq kartalaw quralların óz ishine aladı.[18]

Ayırım freymvorklar introspekciya hám/yamasa belgili konvenciyalardı qollanıw arqalı veb qollanbalardı konfiguraciyalawdı minimumǵa túsiredi. Mısalı, kóplegen Java freymvorkları Hibernate-ti turaqlılıq qatlamı sıpatında qollanadı, ol zárúr informaciyanı saqlawǵa qábiletli maǵlıwmatlar bazası sxemasın orınlaw waqtında dúze aladı. Bul qollanba dizaynerine maǵlıwmatlar bazası sxemasın anıq anıqlamastan biznes obyektlerin jobalawǵa múmkinshilik beredi. Ruby on Rails sıyaqlı freymvorklar kerisinshe de isley aladı, yaǵnıy maǵlıwmatlar bazası sxemasına tiykarlanıp orınlaw waqtında model obyektleriniń qásiyetlerin anıqlay aladı.[18]

Veb freymvorklar usınıwı múmkin bolǵan basqa ózgesheliklerge tranzakciyalıq qollaw[19] maǵlıwmatlar bazasın kóshiriw quralları kiredi.[18]

URL kartasın dúziw

Freymvorktiń URL kartasın dúziw yamasa marshrutlaw qábileti - bul freymvorktiń URL-lerdi túsindiriw mexanizmi. Drupal hám Django sıyaqlı ayırım freymvorklar berilgen URL-di regulyar ańlatpalar járdeminde aldın ala belgilengen úlgiler menen salıstıradı, al basqaları berilgen URL-di tiykarǵı sistemanıń tanıp biletuǵın URL-ge aylandırıw ushın qayta jazıw texnikaların qollanadı. Jáne bir texnika - bul Zope tárepinen qollanılatuǵın graf boylap júriw, onda URL obyekt grafın (modeller hám kórinisler) boylap júretuǵın qádemlerge bólinedi.

Úlgilerdi salıstırıw yamasa qayta jazıwdı qollanıp sorawlardı marshrutlaw hám qayta islew ushın qollanılatuǵın URL kartasın dúziw sisteması qısqaraq hám "doslarsha" URL-lerdi qollanıwǵa múmkinshilik beredi, bul sayttıń ápiwayılıǵın arttıradı hám izlew sistemaları tárepinen jaqsıraq indekslewge múmkinshilik beredi. Mısalı, "/page.cgi?cat=science&topic=physics" penen tamamlanatuǵın URL ápiwayı túrde "/page/science/physics" ke ózgertiliwi múmkin. Bul URL-di adamlar ushın este saqlaw, oqıw hám jazıw ápiwayıraq etedi hám izlew sistemalarına sayttıń strukturalıq dúzilisi haqqında jaqsıraq informaciya beredi. Graf boylap júriw usılı da doslarsha URL-lerdiń jaratılıwına alıp keledi. "/page/science" sıyaqlı qısqaraq URL ádette dáslepki halda bar boladı, sebebi ol "/page/science/physics" ke baratuǵın uzınıraq joldıń qısqa forması bolıp tabıladı.

AJAX

Ajax, "Asinxron JavaScript hám XML" dıń qısqartılǵan atı, veb qollanbalardı jaratıw ushın qollanılatuǵın veb-rawajlandırıw texnikası bolıp tabıladı. Onıń maqseti - veb betlerdi paydalanıwshı ózgeris kirgiziwdi soraǵanda hár saparı pútkil veb betti qayta júklewdiń ornına, fonda server menen az muǵdardaǵı maǵlıwmatlardı almasıw arqalı kóbirek juwap beretuǵınday etip kórsetiw. Bul veb bettiń interaktivligin, tezligin, saqlanıwın hám qolaylılıǵın arttırıwǵa baǵdarlanǵan.[20]

JavaScript te Ajax programmalastırıwdıń quramalılıǵına baylanıslı, tek Ajax qollawı menen shuǵıllanatuǵın kóplegen Ajax freymvorkları bar. Ayırım Ajax freymvorkları hátte úlkenirek freymvorklardıń bir bólegi sıpatında kirgizilgen. Mısalı, jQuery JavaScript kitapxanası Ruby on Rails ke kirgizilgen.

Rawajlanıp atırǵan "Web 2.0" bay veb qollanbalarına qızıǵıwshılıqtıń artıwı menen, Ajax hám JavaScript te tuwrıdan-tuwrı programmalastırıwdıń quramalılıǵı sonshelli ayqın boldı, nátiyjede kompilyator texnologiyası aralasıp, programmistlerge Java, Python hám Ruby sıyaqlı joqarı dárejeli tillerde kod jazıwǵa múmkinshilik berdi. Bul kompilyatorlardıń birinshi bolıp Morfik payda boldı, onnan keyin Google Web Toolkit keldi, al Pyjs hám RubyJS túrinde Python hám Ruby ge ótkeriwler biraz waqıttan soń payda boldı. Bul kompilyatorlar hám olardıń baylanıslı vidjet jıynaq kitapxanaları bay medialı Ajax qollanbaların rawajlandırıwdı desktop qollanbaların rawajlandırıwǵa kóbirek uqsas etedi.

Veb xızmetler

Ayırım freymvorklar veb xızmetlerdi jaratıw hám usınıw ushın qurallar beredi. Bul utilitalar qalǵan veb qollanbalar sıyaqlı uqsas qurallardı usınıwı múmkin.[21]

Veb resurslar

Házirgi waqıtta bir qatar jańa Web 2.0 RESTful freymvorkları Resurslardı Táriyiplew Freymvorki (RDF) túsiniklerine tiykarlanǵan Semantikalıq Veb ontologiyası túrindegi resurslar toplamların qurıw ushın resursqa baǵdarlanǵan arxitektura (ROA) infrastrukturasın usınıp atır.

Derekler

  1. „CGI: Common Gateway Interface“. 9-aprel 2009-jılda túp nusqadan arxivlendi.
  2. „CGI“ (en-us). www.ibm.com. Qaraldı: 7-may 2021-jıl.
  3. Thomson. „Clarification on MVC= Pull and MVC Push“ (29-oktyabr 2003-jıl). Qaraldı: 29-iyul 2007-jıl.
  4. Microsoft. „Three-tiered distribution“. Qaraldı: 19-sentyabr 2011-jıl.
  5. Oracle. „clustering_concepts_10en“. Qaraldı: 19-sentyabr 2011-jıl.
  6. Robert R. Perkoski. „Introduction to Web Development“. 7-noyabr 2013-jılda túp nusqadan arxivlendi.
  7. IBM. „Using Client Access Express in a three tier environment“. Qaraldı: 19-sentyabr 2011-jıl.
  8. Oracle. „Understanding the Three-Tier Architecture“. Qaraldı: 19-sentyabr 2011-jıl.
  9. Microsoft. „Pragmatic Architecture: Layering“. Qaraldı: 19-sentyabr 2011-jıl.
  10. Arokia. „3-Tier Web Architecture“. Qaraldı: 19-sentyabr 2011-jıl.
  11. „ASP.NET MVC Controller Best Practices“. 11-oktyabr 2011-jılda túp nusqadan arxivlendi. Qaraldı: 19-sentyabr 2011-jıl.
  12. Jamis Buck. „Skinny Controller, Fat Model“. 16-may 2015-jılda túp nusqadan arxivlendi.
  13. "Getting Started With Web Frameworks". https://www.wired.com/2010/02/get_started_with_web_frameworks/. 
  14. KLIMUSHYN. „Web Application Architecture – Client-Side vs. Server-Side“. Atomic Spin (6-aprel 2015-jıl). Qaraldı: 6-mart 2016-jıl.
  15. „AngularJS vs. Backbone.js vs. Ember.js“ (en-US). www.airpair.com. Qaraldı: 4-iyun 2016-jıl.
  16. 16,0 16,1 Fowler. „bliki: InversionOfControl“. martinfowler.com. Qaraldı: 6-mart 2016-jıl.
  17. Xue. „Capital One Engineering – Philosophies that Shaped Successful Frameworks“. www.capitalone.io. Qaraldı: 6-mart 2016-jıl.
  18. 18,0 18,1 18,2 „Active Record Basics“. Ruby on Rails. — „Object Relational Mapping, commonly referred to as its abbreviation ORM, is a technique that connects the rich objects of an application to tables in a relational database management system...Active Record automatically creates methods to allow an application to read and manipulate data stored within its tables.“. Qaraldı: 20-mart 2021-jıl. Silteme kórsetiwdegi qátelik: Invalid <ref> tag; name "ActiveRecordBasics" defined multiple times with different content
  19. „Active Record Transactions“. Ruby on Rails. Qaraldı: 20-mart 2021-jıl.
  20. „What is AJAX“. www.dlsweb.rmit.edu.au. Qaraldı: 7-may 2021-jıl.
  21. Maximilien, E. M. „Tutorial 4: Web Services on Rails: Using Ruby and Rails for Web Services Development and Mashups“,. 2006 IEEE International Conference on Web Services (ICWS'06), 2006 — xliii bet. DOI:10.1109/ICWS.2006.139. ISBN 0-7695-2669-1.