Salam.
Bundan əvvəlki yazıda veb proqramlar ilə desktop proqramların nə olduğu haqqında qısa məlumat aldıq. Ümumiyyətlə, düşünürəm ki, verilən məlumat nə qədər qısa və qeyri-kitab dili ilə yazılsa (bəzi universitet müəllimləri məni bağışlasın) bir o qədər daha asan yadda qalır.
Beləliklə bugün klient-server şəbəkə arxitekruası haqqında danışacağıq. Əsasən 3 arxitektura istifadə olunur (bildiyim qədər):
- Klient-server arxitekturası
- P2P (Peer-to-peer)
- Hibrid (yuxarıdakı ikisinin kombinasiya olunmuş versiyası)
Hər biri haqqında bir neçə cümlə deyək:
Klient-server arxitekturası nə deməkdir?
Klient-server arxitekturasında məlumat serverdə yerləşir, klient (istifadəçi) kompyuterləri isə serverə müraciət edərək oradan məlumat alırlar. Mən Veb Proqram tərəfdən başa salmağa çalışacağam. Məsələn, əvvəlki yazıda dediyimiz kimi, bir şirkət üçün veb proqram yazılır və qoyulur şirkətin daxili veb serverinə. Şirkət işçiləri də URL adres vasitəsilə veb proqrama daxil olurlar. Bu zaman hər bir məlumat almaq üçün istifadəçinin brauzeri serverə REQUEST (sorğu) göndərir, veb server gələn sorğunu qəbul edir, yerinə yetiri və istifadəçiyə (klientə) RESPONSE (cavab) qaytarır. Beləcə proses davam edir, klient sorğu göndərir, server isə cavablandırır. Bax belə, bu klient-server haqqında minimal məlumat.
Qeyd:
- REQUEST - Veb proqramlarda klientin serverə müraciəti. HTTP protokolu əsasında işləyir.
- RESPONSE - Veb proqramlarda veb serverin klient sorğusuna qaytardığı cavab. HTTP protokolu əsasında işləyir.
Peer-to-peer (P2P) arxitekturasında mərkəzləşmiş server əvəzinə bütün istifadəçilərin kompyuterləri birbaşa bir-birinə məlumat ötürür. Əsas işimiz bu arxitektura olmadığından sadəcə məlumatınız olsun yetər. Bu arxitekturaya misal kimi Bittorrent trekeri göstərmək olar.
Hibrid arxitektura isə klient-server və P2P arxitekturaların kombinasiyasını adlandırırlar. Yəni eyni proqram həm klient-server həm də peer-to-peer arxitekturasını istifadə edir. Misal kimi məşhur Skype proqramını göstərmək olar.
Deməli məlumat ötürülməsinə görə əsas 3 quruluşun olduğunu anladıq. Amma biz Veb proqramlar yazmaq üçün əsas Klient-Server arxitekturası ilə işləyəcəyik. V obşem, işimiz Veb Serverə sorğu (request) göndərmək və veb serverin bizə göndərəcəyi cavabı (response) almaq olacaq həmişə. :) Dediyimiz bu request-response HTTP (HyperText Transfer Protocol) ilə işləyir.
Qeyd:
- PROTOKOL - hər hansı ümumiləşmiş qaydalar toplusu. Məs. yazdığımız adı ərizə forması həmişə eyni olur, beləcə də protokolu məlumatın ötürülməsində qayda kimi istifadə etmək üçün çıxarıblar. Protokollar çoxdur, burada şəbəkə haqqında məlumat vermək fikrim yoxdur, ona görə gələn dərs ancaq bizə lazım olacaq protokollar haqqında qısa məlumat yazacağam.
- HTTP protokolu - html səhifələrin şəbəkə (internet) üzərindən ötürülməsi üçün istifadə olunan protokoldur. Hər request-response çütlüyü bu protokol vasitəsilə işləyir. Request necə olmalıdır, hansı məlumatı özündə saxlayır, response kodlar və s. hamısı bu protokol ilə tənzimlənir. Gələn dərs lazım olan qədər araşdıracağıq HTTP protokolunu.
Ok.. Protokol nədir, arxitekturalar, veb proqramda biz hansı arxitektura ilə işləyəcəyik, və bu (klient-server) arxitekturası hansı protokol ilə işləyir biləndən sonra veb proqram və istifadəçilərin qoşulması, bu zaman istifadə olunan dil və texnologiyalar haqqında ümumi məlumat vermək istəyirəm. Ümumi struktur bir neçə sözlə belədir:
- Veb proqram təminatı yazılır
- Veb serverdə istifadəyə verilir
- İstifadəçilər brauzer vasitəsi ilə proqrama qoşulurlar
- Bundan sonrası ancaq bildiyimiz REQUEST-RESPONSE (sorğu-cavab) cütlərinin davamlılığı ilə nəticələnir. Məs. indi hamısına facebookdan misal gətirsəm daha yaxşı anlayarlar)). Facebook-a brauzer vasitəsi ilə daxil olursunuz (bu, bir sorğu göndərdiniz və server sizə facebookun əsas səhifəsini cavab olaraq göndərdi). Növbəti addım olaraq, istifadəçi adı və şifrənizi daxil edirsiniz və "Daxil ol" düyməsinə klik edirsiniz (bu da öz növbəsində facebook-un veb serverinə sizin məlumatlarınızı sorğu şəklində göndərir) və yenə veb server göndərdiyiniz məlumatların düzgünlüyünü yoxlayıb ona uyğun olaraq ya sizi sayta qəbul edir ya da loqin/şifrə cütünün səhv olduğu barəsində response (cavab) qaytarır. Göründüyü kimi çox primitiv sorğu-cavab olaraq bütün növbəti əməliyyatlar belə davam edir. Ümid edirəm tam aydın oldu..
Bunları da bildik. İndi baxaq görək hansı proqramlaşdırma dili və texnologiyalar istifadə olunur tam funksionallı birveb proqramın yazılmasında. Arxitektura klien və server hissələrinə bölündüyündən proqramlaşdırma dilləri də klient tərəfdə (brauzerdə) kompilyasiya olunan və server tərəfdə kompilyasiya olunan iki hissəyə bölünür. Bundan əlavə olaraq veb server sizin saytda yazdığınız məlumatları (məs. facebook-da yazdığınız mesajlara hər zaman girib baxa bilirsiniz) verilənlər bazasında saxlayır. Verilənlər bazası ilə işləmək üçün isə xüsusi dil var. Yəni azərbaycanlı ilə azərbaycanca, rus ilə rusca, ingilis ilə ingiliscə danışdığımış kimi bu texnologiyalar ilə də özünə uyğun dildə danışırıq.
Qeyd:
- KOMPİLYASİYA - proqramlaşdırma dilində yazdığımız kodun kompyuterin anlayacağı dilə çevrilməsi (tam dəqiq olmasa da buna yaxın birşeydir)
- VERİLƏNLƏR BAZASI - proqram daxilində işləyən və ötürülən məlumatların uzun müddətli saxlanılması üçün istifadə olunan proqram təminatı (tam dəqiq olmasa da buna yaxın birşeydir). Verilənlər bazaları çoxdur, məlumatı saxlamasına görə bir neçə növə bölünür. Bizim istifadə edəcəyimiz RELYASİYA modeli ilə işləyən verilənlər bazası, daha dəqiq isə ORACLE şirkətinin eyni adlı məhsulu olacaq.
İndi baxaq klientdə, serverdə və verilənlər bazasında işləmək üçün bizə lazım olan proqramlaşdırma dillərinə:
Klientdə (brauzerdə) işləyən dillər:
- HTML (HyperText Markup Language) - xüsusi simvollar (tag - oxunulur "teq") vasitəsi ilə veb proqramın klientə göstərilən strukturunu düzəldir. Yəni, bu səhifədə gördüyünüz düymələr, hər hansı saytda mətn daxil etmık üçün olan sahələr, bir sözlə veb səhifədə gördüyünüz elementlər HTML vasitəsi ilə yaradılır.
- CSS (Cascading Style Sheets) - xüsusi kodlar ilə HTML vasitəsilə yaradılmış elementlərə və veb səhifəsinə dizayn vermək üçün istifadə olunur.
- Javascript - Brauzerdə işləyən və yaradılmış elementlər ilə işləmək üçün olan proqramlaşdırma dili (skript dili). Məs. bir knopkaya klik edəndə knopka nə etsin, məlumat xanasına birşey daxil edəndə nə baş versin və s. çoxlu funksionallıq var. Javascript özü mənim elə də xoşuma gəlmir və buna görə də jQuery adlanan, daha geniş funksionallığı olan kitabxana istifadə edəcəyik.
Veb serverdə icra olunan dillər:
- Java - dünyada ən məşhur proqramlaşdırma dili sayılan Java proqramlaşdırma dili. Bir neçə texnologiyaya bölünür: Java Standard Edition (əsası), Java Enterprise Edition (biznes proektlərin yazılması üçün) - bunun daxilində olan Java Web (Veb proqramların hazırlanması üçün istifadə olunur). Digər texnologiyaları bizə lazım deyil ona görə yazmıram buraya.
- JSP (Java Server Pages) - Java Web texnologiyasına daxil olan, dinamik səhifələr yaratmaq üçün texnologiya. HTML-də olduğu kimi xüsusi teq-ləri var.
- Servlet - Java Web-ə daxil olan bir digər texnologiya. Serverə gələn requestləri əldə etmək üçün xüsusi yazılmış funksionallığı var.
- JSTL (JSP Tag Library) - JSP səhifələrdə istifadə etmək üçün xüsusi teqlərdir ki, dinamik səhifəni daha tez və rahat generasiya etməyimizdə bizə kömək edəcək.
Verilənlər bazası ilə işləmək üçün (Oracle məhsulu üçün):
- Oracle SQL (Structured Query Language) - strukturlaşdırılmış sorğu dili. Proqramlaşdırma dili deyil, sadəcə verilənlər bazasına məlumat yazmaq, dəyişmək, silmək və bu kimi əməliyyatları yerinə yetirmək üçün istifadə olunur.
- Oracle PL/SQL (Procedural Language / Structured Query Language) - verilənlər bazasında olan məlumat ilə işləmək üçün proçedur dili. Proqramlaşdırma dili desək Larry Ellison inciməz yəqin)). Bu dildə artıq sadəcə sorğu yox, proqramlaşdırma dili kimi bütün şərt və s. operatorlar, dövrlər, obyektlər (oracle-da tip adlanır), massivlər və digər funksionallıq mövcüddur. İndidən deyim, çox tələb olunan və güclü texnologiyadır.
Nəisə, bunlara da baxdıq, düşünürəm bugünlük bu qədər məlumat bəs edər. Bir də nəzərinizə çatdırım ki, burada yazdığım dillər bizim gələcəkdə araşdıracağımız dillərdir. Belə çox göründüyünə baxmayın, həvəs olandan sonra asan mənimsənir..
Ok, gələn görüşlərədək..
Melumatlara gore cox sagolun yararlandim
ReplyDelete