Vaqt o'tishi bilan mahalliy tarmoqlar uchun fayl serverining unchalik funktsional bo'lmagan modeli (FS) Client Server tuzilmasining (RDA, DBS va AS) boshqa bir modelining paydo bo'lishi bilan almashtirildi.
Ma'lumotlar bazasining pastki qismini egallagan Client-Server texnologiyasi global Internetning asosiy texnologiyalariga aylandi. Bundan tashqari, Internet g'oyalarini korporativ tizimlar sohasiga o'tkazish natijasida Intranet texnologiyasi paydo bo'ldi. Client-Server texnologiyasidan farqli o'laroq, bunday texnologiya ma'lumotlar uchun emas, balki iste'mol qilish uchun yakuniy shaklda ma'lumotga aylantiriladi. Intranet bazasida qurilgan hisoblash tizimlari markaziy axborot serverlarini va oxirgi foydalanuvchiga ma'lumotlarni taqdim etishning ba'zi tarkibiy qismlarini o'z ichiga oladi (brauzerlar yoki navigatsiya dasturlari). Intranet-da server va mijoz o'rtasidagi harakat veb-texnologiyalar yordamida amalga oshiriladi.
Zamonaviy davrda Client-Server texnologiyasi juda keng tarqaldi, ammo bu texnologiyaning o'zi universal retseptlarga ega emas. U faqat joriy tarqatish axborot tizimini qanday yaratish kerakligi to'g'risida umumiy fikrni beradi. Shuningdek, ushbu texnologiyaning ma'lum dasturiy mahsulotlarda va hatto dasturiy ta'minot turlarida joriy etilishi sezilarli darajada tan olinadi.
Ikki darajali klassik arxitektura “Mijoz - server”
Qoidaga ko'ra, tarmoq tarkibiy qismlari teng huquqlarga ega emas: ba'zilari resurslarga kirish huquqiga ega (masalan: ma'lumotlar bazasini boshqarish tizimi, protsessor, printer, fayl tizimi va boshqalar), boshqalari esa ushbu manbalarga kirish imkoniyatiga ega. operatsion tizimning server texnologiyasi
Client-Server texnologiyasi bu "so'rov-javob" sxemasi bo'yicha o'zaro ishlaydigan va o'ziga xos vazifalarni hal etadigan mantiqiy jihatdan har xil qismlarga (server va mijoz) amaliy dastur tomonidan tarqatilgan dasturiy ta'minot to'plamining arxitekturasidir.
Resursni boshqaradigan va / yoki unga ega bo'lgan dastur (yoki kompyuter) ushbu manbaning serveri deb nomlanadi.
Resursni so'raydigan va ishlatadigan dastur (kompyuter yoki) ushbu manbaning mijozi deb ataladi.
Shu bilan birga, ba'zi bir dastur birligi bir vaqtning o'zida bitta blokka va mijozga nisbatan boshqa blokka nisbatan server funktsiyalarini amalga oshirganda, bunday holat yuzaga kelishi mumkin.
Mijoz-Server texnologiyasining asosiy printsipi dastur funktsiyalarini kamida uchta havolaga bo'lishdir:
Foydalanuvchi interfeysi modullari
Ushbu guruh taqdimot mantig'i deb ham ataladi. Uning yordami bilan foydalanuvchilar ilovalar bilan o'zaro aloqa qilishlari mumkin. Taqdimot mantig'ining o'ziga xos xususiyatlaridan qat'i nazar (buyruq satrlari interfeysi, oraliq interfeyslar, foydalanuvchilarning murakkab grafik interfeyslari) uning vazifasi axborot tizimi va foydalanuvchi o'rtasida samarali almashinuv uchun vositalarni taqdim etishdir.
Ma'lumotlarni saqlash modullari;
Ushbu guruhga biznes mantig'i ham deyiladi. Ishbilarmonlik mantig'i dastur uchun aynan nimani topishini (masalan, ma'lum bir sohaga tegishli amaliy funktsiyalar) topadi. Ilovani dasturlarning chegaralari bo'yicha ajratish, dasturni ikki yoki undan ortiq kompyuterlarda tarqatish uchun tabiiy asosni ta'minlaydi.
Ma'lumotlarni qayta ishlash modullari (resurslarni boshqarish funktsiyalari);
Ushbu guruh ma'lumotlarga kirish algoritmlari yoki oddiygina ma'lumotlarga kirish algoritmlari tomonidan mantiq deb ataladi. Ma'lumotni kiritish algoritmlari ma'lumotlar bazasini ma'lumotlar bazasi yoki fayl tizimi kabi barqaror saqlash uchun qurilmaga ma'lum bir dastur uchun o'ziga xos interfeys sifatida qaraladi. Ma'lumotlarga ishlov berish modullaridan foydalanib, ma'lumotlar bazasini boshqarish uchun maxsus interfeys tashkil qilingan. Interfeysdan foydalanib, dastur ma'lumotlar bazasi ulanishlarini va unga bo'lgan so'rovlarni boshqarishi mumkin (dasturga tegishli so'rovlarni SQL tiliga tarjima qilish, natijalarni olish va natijalarni amaliy dastur tuzilmalariga qaytarish). Ushbu havolalarning har biri bir nechta boshqa narsalardan mustaqil ravishda amalga oshirilishi mumkin. Masalan, ma'lumotlarni qayta ishlash va saqlash uchun ishlatiladigan dasturlarni o'zgartirmasdan, foydalanuvchi interfeysini o'zgartirishingiz mumkin, shunda xuddi shu ma'lumotlar jadvallar, gistogrammalar yoki grafikalar ko'rinishida ko'rinadi. Oddiy dasturlar, odatda, uchta uchta havolani bitta dasturga birlashtirishi mumkin va bunday ajratish funktsional chegaralarga to'g'ri keladi.
Har bir dasturda funktsiyalarni ajratishga muvofiq quyidagi komponentlar ajratiladi:
- ma'lumotlarni taqdim etish komponenti;
- amaliy komponent;
- resurslarni boshqarish komponenti.
Klassik arxitekturadagi mijoz-server dasturning uchta asosiy qismini 2 fizik modulga taqsimlashi kerak. Odatda, dastur komponenti serverda (masalan, ma'lumotlar bazasi serverida), ma'lumotlarni taqdim etish komponenti mijoz tomonida va resurslarni boshqarish komponenti server va mijoz qismlari o'rtasida taqsimlanadi. Bu klassik ikki bosqichli arxitekturaning asosiy kamchiliklari.
Ikki bosqichli arxitekturada, ma'lumotlarni qayta ishlash algoritmlarini ajratishda, ishlab chiquvchilar tizimga kiritilgan so'nggi o'zgarishlar to'g'risida to'liq ma'lumotga ega bo'lishlari va ushbu o'zgarishlarni tushunishlari kerak, bu esa mijoz-server tizimlarini rivojlantirishda, ularga xizmat ko'rsatish va o'rnatishda hech qanday qiyinchilik tug'dirmaydi, chunki katta xarajatlarni sarflash kerak. turli mutaxassislar guruhlarining harakatlarini muvofiqlashtirish bo'yicha harakatlar. Qarama-qarshilik ko'pincha ishlab chiquvchilarning harakatlarida yuzaga keladi va bu tizimning rivojlanishini sekinlashtiradi va tayyor va sinovdan o'tgan elementlarni o'zgartirishga majbur qiladi.
Turli xil arxitektura elementlarining nomuvofiqligini oldini olish uchun biz ikki bosqichli "Client - Server" arxitekturasining ikkita modifikatsiyasini yaratdik: "Qalin mijoz" ("ingichka server") va "yupqa mijoz" ("qalin server").
Ushbu arxitekturada ishlab chiquvchilar ma'lumotlarni ikki qismdan - mijoz tomonidan ("Thick Client") yoki serverda ("Thin Client") qayta ishlashga harakat qilishdi.
Har bir yondashuv o'zining muhim kamchiliklariga ega. Birinchi vaziyatda tarmoq keraksiz ravishda ortiqcha yuklanadi, chunki u orqali xom ma'lumotlar, ya'ni ortiqcha ma'lumotlar uzatiladi. Bundan tashqari, tizimni qo'llab-quvvatlash va uni o'zgartirish yanada murakkablashadi, chunki xatoni tuzatish yoki hisoblash algoritmini almashtirish barcha interfeys dasturlarini bir vaqtning o'zida to'liq almashtirishni talab qiladi, agar to'liq almashtirish amalga oshirilmasa, ma'lumotlar yoki xatolar nomuvofiqligi yuzaga kelishi mumkin. Agar barcha ma'lumotlarni qayta ishlash serverda amalga oshirilsa, unda o'rnatilgan protseduralarni tavsiflash va ularni tuzatish muammosi mavjud. Serverda ma'lumotlarni qayta ishlaydigan tizimni boshqa platformaga (OS) o'tkazish mutlaqo mumkin emas, bu jiddiy kamchilik.
Agar ikki darajali klassik arxitektura "Mijoz - server" yaratilgan bo'lsa, unda siz quyidagi faktlarni bilishingiz kerak:
Qalin server arxitekturasi yupqa mijozlar arxitekturasiga o'xshash
Mijozdan so'rovni serverga o'tkazish, so'rovni server tomonidan qayta ishlash va natijani mijozga yuborish. Shu bilan birga, arxitektura quyidagi kamchiliklarga ega:
- amalga oshirish murakkablashadi, chunki SQL kabi tillar bunday dasturiy ta'minotni ishlab chiqish uchun mos emas va disk raskadrovka uchun yaxshi vositalar mavjud emas;
- SQL kabi tillarda yozilgan dasturlarning ishlashi boshqa tizimlarga qaraganda ancha past, bu murakkab tizimlar uchun juda muhimdir;
- DBMS tillarida yozilgan dasturlar odatda qisman unchalik ishonchli emas ishlaydi; ulardagi xato butun ma'lumotlar bazasi serverining ishdan chiqishiga olib kelishi mumkin;
- Shunday qilib olingan dasturlar boshqa platformalar va tizimlarga mutlaqo ko'chirilmaydi.
- Thick Client arxitekturasi nozik server arxitekturasiga o'xshash
Talabga ishlov berish mijoz tomonidan amalga oshiriladi, ya'ni serverdan barcha xom-ashyolar mijozga o'tkaziladi. Bunday holda, arxitekturaning salbiy tomonlari bor:
- dasturiy ta'minotni yangilash yanada murakkablashmoqda, chunki uni butun tizim davomida bir vaqtning o'zida almashtirish kerak;
- vakolatlarni taqsimlash yanada murakkablashadi, chunki kirishni boshqarish harakatlarga emas, balki jadvallarga muvofiq amalga oshiriladi;
- xom ashyo ma'lumotlarini uzatish tufayli tarmoq haddan tashqari yuklangan;
- ma'lumotlarni zaif himoya qilish, chunki vakolatni to'g'ri taqsimlash qiyin.
Ushbu muammolarni hal qilish uchun ko'p darajali (uch yoki undan ko'p darajadagi) mijoz-server arxitekturasidan foydalanish kerak.