AppML arxitekturasi


ULASHISH

Zamonaviy veb-arxitektura

AppML zamonaviy veb-ishlab chiqishning eng so‘nggi usul va g‘oyalarini o‘zida birlashtiradi.

AppML tezlik, soddalik va kam xarajatga e’tibor qaratadi:

  • Kam xarajat
  • Tez va moslashuvchan (agile) veb-ishlab chiqish
  • Bulutli hisoblashlar uchun optimallashtirilgan
  • Yuqori tezlik va kam trafik sarfi
  • MVC (Model View Controller) arxitekturasi
  • Kontentning taqdimotdan to‘liq ajratilishi
  • Yuqori darajada kengaytiriladigan va testlanadigan
  • Oson sozlash va qayta sozlash
  • Ilovalar ishlab turgan paytda qayta sozlash
  • Foydalanuvchi akkauntlari va rollarini aqlli qo‘llab-quvvatlash

MVC arxitekturasi

 

AppML MVC arxitekturasidan foydalanadi

MVC — Model, View, Controller (model, ko‘rinish, kontroller) so‘zlarining qisqartmasi

Model ilovangizni tavsiflaydi.

View (ko‘rinish) ma’lumotlaringizni ko‘rsatadi.

Controller (kontroller) ilovangizni boshqaradi (albatta).

 

Wikipedia: Model, View, Controller

        MVC

MODEL — shunchaki JSON

Model ilovani tavsiflaydi.

Modeldan turli apparat va dasturiy platformalarda (server, PC, iPhone, planshetlar va h.k.) qayta foydalanish mumkin.

Model taqdimot yoki foydalanuvchi interfeysi (UI) bilan bog‘liq emas.

Model JSON’da yoziladi:

Model

{ "rowsperpage" : 10, "database" : {     "connection" : "localmysql",     "sql" : "SELECT CustomerName, City, Country FROM Customers",     "orderby" : "CustomerName" }, "filteritems" : [     {"item" : "CustomerName", "label" : "Customer"},     {"item" : "City"},     {"item" : "Country"} ], "sortitems" : [     {"item" : "CustomerName", "label" : "Customer"},     {"item" : "City"},     {"item" : "Country"} ] }

VIEW — shunchaki HTML

View — ma’lumotlarni ko‘rsatish (va kiritish) uchun UI (foydalanuvchi interfeysi).

View HTML va CSS’da yoziladi:

HTML ko‘rinish (View)

<!DOCTYPE html> <html lang="en-US"> <title>Customers</title> <link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css"> <script src="https://www.w3schools.com/appml/2.0.3/appml.js"></script> <body> <div class="w3-container" appml-data="local?model=model_customers"> <h1>Customers</h1> <div appml-include-html="inc_listcommands.htm"></div> <div appml-include-html="inc_filter.htm"></div> <table class="w3-table-all">   <tr>     <th>Customer</th>     <th>City</th>     <th>Country</th>   </tr>   <tr appml-repeat="records">     <td>{{CustomerName}}</td>     <td>{{City}}</td>     <td>{{Country}}</td> </tr> </table> </div> </body> </html>
O‘zingiz sinab ko‘ring »


CONTROLLER — klient va/yoki server skriptlari

Veb-sahifadagi klient skripti ilovani boshqarishi mumkin:

  • AppML ma’lumotlarni modelda belgilanganidek ko‘rsata oladi
  • AppML ma’lumotlarni HTML atributlarida belgilanganidek ko‘rsata oladi.
  • AppML ilovalari HTML’dan mustaqil ravishda (yashirin holda) ishlay oladi
  • (Ixtiyoriy) AppML veb-serverdan (SQL serverdan) model ma’lumotlarini so‘rashi mumkin
  • (Ixtiyoriy) AppML foydalanuvchilari ma’lumotlarni tahrirlashi mumkin
  • (Ixtiyoriy) AppML veb-serverga ma’lumot yuborishi mumkin

Server skripti ilovani quyidagilar orqali boshqarishi mumkin:

  • Klientdan (brauzerdan) so‘rovlarni qabul qilish
  • Klientga ma’lumotlarni qaytarish
  • Klientdan ma’lumotlarni qabul qilish
  • Serverdagi ma’lumotlarni yangilash
  • Autentifikatsiya va xavfsizlikni ta’minlash

Dasturlash san’ati

Ilova hajmi va murakkabligini past darajada saqlash — barcha dasturlashning asosiy muammosi.

Kompyuter ilovalarining murakkabligini nazorat qilish — dasturlashning haqiqiy san’ati.


Deklarativ dasturlash

Dasturiy ta’minot ishlab chiqishda ko‘pincha muddatlar va byudjetlar buziladi. Tayyor dasturiy ta’minot ko‘pincha kod xatolariga to‘la bo‘ladi. Buning sababi — kompyuter kodini ishlab chiqish, testlash va qo‘llab-quvvatlash qiyin.

Kod yozish eskirdi. Ishni qanday qilishdan ko‘ra, nima qilish kerakligini ko‘proq tavsiflashingiz kerak.

AppML yordamida ilovangizni Model va Viewda e’lon qilasiz.

AppML bilan kod yozish kamayadi (ba’zan umuman kerak bo‘lmaydi).

Wikipedia: Deklarativ dasturlash


Ilovalarni tez va moslashuvchan (agile) ishlab chiqish

Kompyuter ilovalarining murakkabligini nazorat qilish — dasturlashning haqiqiy san’ati.

Ilova hajmi va murakkabligini nazorat ostida saqlash — barcha dasturlashning asosiy muammosi.

RAD — tezkor prototiplash foydasiga minimal rejalashtirishdan foydalanadigan dasturiy ta’minot ishlab chiqish usuli.

AppML an’anaviy ishlab chiqish usullariga qaraganda 100 baravargacha tezroq, o‘ta tezkor prototiplashni ta’minlaydi.

Ilova prototiplari hech qanday kod yozmasdan to‘g‘ridan-to‘g‘ri ilova modelidan ishga tushirilishi mumkin.

Wikipedia: ilovalarni tez ishlab chiqish (Rapid Application Development)

Agile dasturiy ta’minot ishlab chiqish — bosqichma-bosqich ishlab chiqishga asoslangan usul bo‘lib, unda yechimlar foydalanuvchilar va dasturchilar hamkorligida yaratiladi.

AppML yordamida ilovalarni prototiplardan to‘liq ilovalargacha kichik qadamlar bilan bosqichma-bosqich yozish mumkin.

Wikipedia: Agile dasturiy ta’minot ishlab chiqish


Code First (avval kod)

Veb-ilovani ikki xil usulda ishlab chiqish mumkin:

1. Code First (avval kod): oldindan dasturlangan va oldindan testlangan koddan foydalanib, faqat yangi ilova tavsiflarini qo‘shish.

2. Contract First (avval shartnoma): ilovaning to‘liq talablar tavsifidan foydalanib, uni noldan kodlash.

AppML eng oqilona konsepsiyadan foydalanadi: Code First.


Servisga yo‘naltirilgan arxitektura (SOA)

Servisga yo‘naltirilgan arxitektura (SOA) — veb-ilovalarni yaratish uchun arxitektura.

SOA past ishlab chiqish xarajatlari va yuqori moslashuvchanlikni taklif etadi.

SOA yordamida ilovalarni noldan yoki mavjud IT infratuzilmalaridan yaratish va ulardan turli apparat va dasturiy ta’minotlarda turli ilovalar tomonidan foydalanish mumkin.

SOA MVC va deklarativ dasturlash uchun juda mos keladi — bunda ma’lumotlardan ular qanday olinishi haqida qayg‘urmasdan osongina foydalanish mumkin.


Veb-servislar

Veb-servis — xuddi veb-sahifa kabi URL orqali aniqlanadigan ma’lumotlar interfeysi.

Veb-servis veb-sahifadan faqat axborotni uzatish usuli bilan farq qiladi.

Odatiy veb-servis veb-sahifaga faqat ma’lumotlarni taqdim etadi.

AppML’da HTML foydalanuvchi interfeysi vazifasini bajaradi, ma’lumotlarni esa veb-servis taqdim etadi.

Dastlabki veb-servislar SOAP, WSDL va UDDI kabi XML standartlaridan foydalanish uchun mo‘ljallangan edi.

AppML kabi zamonaviy veb-servislardan foydalanish ancha oson.

  • Tushunish osonroq — inson tomonidan o‘qilishi mumkin
  • Yengil — ortiqcha kod yoki belgilashlarsiz (markup)
  • Joriy qilish oson — ishlab chiqish vositalari talab qilinmaydi

Veb-servislarning afzalliklari

  • Veb-servislar — kichik kod birliklari
  • Veb-servislar cheklangan vazifalar to‘plamini bajarish uchun mo‘ljallangan
  • Veb-servislar HTTP’ga asoslangan aloqa protokollaridan foydalanadi
  • Veb-servislar operatsion tizimlarga bog‘liq emas
  • Veb-servislar dasturlash tillariga bog‘liq emas
  • Veb-servislar turli ilovalar, tizimlar va qurilmalarni bog‘lay oladi
  • Veb-servislar axborotni tarqatishni osonlashtiradi
  • Veb-servislar ilovalarni tez ishlab chiqishga yordam beradi

Misol: boshqa ilovalarni birja narxlari bilan ta’minlash uchun mo‘ljallangan kichik dastur.

Misol: parvozlar jadvali va chiptalarni bron qilish tizimlari.

Veb-servislar HTTP’dan foydalangani uchun ular operatsion tizimlarga ham, dasturlash tillariga ham bog‘liq emas.


Bulutli hisoblashlar

Bulutli hisoblashlar — SOA’ning kengaytmasi: ilova xizmat sifatida (Application-as-a-service), xotira xizmat sifatida (Storage-as-a-service), ma’lumotlar xizmat sifatida (Data-as-a-service).

Ko‘pchilik uchun bulutli hisoblashlar — bu ma’lumotlarni vebda saqlash demakdir:

  • Elektron xatlar va kalendarlar
  • Hujjatlar va elektron jadvallar
  • Kitoblar, eslatmalar va vazifalar ro‘yxatlari
  • Musiqa, rasmlar va filmlar
  • Ma’lumotlar bazalari va ilovalar

Sabablari ancha aniq:

  • Ma’lumotlarga istalgan joydan kirish imkoniga ega bo‘lish
  • Ma’lumotlarimni boshqalar bilan ulashish
  • Uskunalar almashtirilganda yoki ishdan chiqqanda ma’lumotlarni saqlab qolish

AppML yordamida ma’lumotlar bazalarini ham, ilovalarni ham bulutga joylashtirish juda oson.


W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!