AppML arxitekturasi
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 |
![]() |
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!

