№4 дәріс. Клиент-сервер архитектурасы
Әдетте, желілік компоненттердің тең құқықтары жоқ: кейбіреулері ресурстарға қол жеткізе алады (мысалы: мәліметтер базасын басқару жүйесі, процессор, принтер, файлдық жүйе және басқалары), ал басқалары бұл ресурстарға қол жеткізе алады. операциялық жүйенің сервер технологиясы
«Клиент - Сервер» технологиясы - бұл қолданбалы бағдарламаны екі логикалық әр түрлі бөліктерге (сервер мен клиент) тарататын, «сұраныс-жауап» схемасы бойынша өзара әрекеттесетін және өзіндік нақты міндеттерді шешетін бағдарламалық пакеттің архитектурасы.
Кейбір ресурстарды басқаратын және / немесе иеленетін бағдарлама (немесе компьютер) сол ресурстардың сервері деп аталады.
Ресурсты сұрайтын және қолданатын бағдарлама (компьютер немесе) сол ресурстардың клиенті деп аталады.
Бұл жағдайда мұндай жағдайлар кейбір бағдарламалық бірліктер бір уақытта сервердің және басқа блокқа қатысты клиенттің функцияларын орындайтын кезде пайда болуы мүмкін.
«Клиент-Сервер» технологиясының басты қағидасы қосымшаның функцияларын кем дегенде үш сілтемеге бөлу:
Пайдаланушы интерфейсінің модульдері;
Бұл топты презентация логикасы деп те атайды. Оның көмегімен қолданушылар қосымшалармен өзара әрекеттесе алады. Презентация логикасының нақты сипаттамаларына қарамастан (командалық интерфейс, интерфейс интерфейстері, қолданушының күрделі графикалық интерфейстері), оның мақсаты ақпараттық жүйе мен қолданушы арасындағы ақпарат алмасудың тиімді құралы болып табылады.
Деректерді сақтау модульдері;
Бұл топты іскери логика деп те атайды. Іскери логика қосымшаның не үшін қажет екенін анықтайды (мысалы, берілген доменге тән қолданбалы функциялар). Бағдарламаның шекаралары бойынша қосымшаны бөлу қосымшаны екі немесе одан да көп компьютерлерде таратудың табиғи негізін ұсынады.
Мәліметтерді өңдеу модульдері (ресурстарды басқару функциялары);
Бұл топты логикалық деректерге қол жеткізу алгоритмі немесе жай мәліметтерге қол жеткізу деп те атайды. Мәліметтерді енгізу алгоритмдері деректерді тұрақты сақтауға арналған құрылғыға нақты қосымшаның нақты интерфейсі ретінде, ДҚБЖ немесе файлдық жүйе ретінде қарастырылады. Мәліметтерді өңдеу модульдерінің көмегімен ДҚБЖ қосымшасына арнайы интерфейс ұйымдастырылған. Интерфейсті қолдана отырып, қосымша мәліметтер қорының қосылымдары мен сұраныстарын басқара алады (қолданбаға арналған сұраныстарды SQL-ге аудару, нәтижелерді алу және сол нәтижелерді қолданбаның арнайы деректер құрылымына қайта аудару). Тізімде көрсетілген сілтемелердің әрқайсысы бірнеше басқа сілтемелерден тәуелсіз жүзеге асырылуы мүмкін. Мысалы, деректерді өңдеуге және сақтауға арналған бағдарламаларды өзгертпестен, сол мәліметтер кестелер, гистограммалар немесе графиктер түрінде көрсетілетін етіп пайдаланушы интерфейсін өзгертуге болады. Ең қарапайым қосымшалар көбінесе үш сілтемені бір бағдарламаға жинай алады және бұл бөліну функционалды шекарадан тұрады.
Функциялардың бөлінуіне сәйкес әр қосымшада келесі компоненттер бөлінеді:
- мәліметтерді ұсыну компоненті;
- қолданбалы компонент;
- ресурстарды басқару компоненті.
Классикалық архитектурадағы клиент-сервер қосымшаның үш негізгі бөлігін 2 физикалық модульге бөлуі керек. Әдетте, қосымшаның компоненті серверде орналасқан (мысалы, мәліметтер қорының серверінде), мәліметтерді ұсыну компоненті клиент жағында, ал ресурстарды басқару компоненті сервер мен клиент бөліктері арасында бөлінеді. Бұл классикалық екі деңгейлі архитектураның басты кемшілігі.
Екі деңгейлі архитектурада деректерді өңдеу алгоритмдерін бөлу кезінде әзірлеушілер жүйеге енгізілген ең соңғы өзгерістер туралы толық ақпаратқа ие болуы керек және бұл өзгерістерді түсінуі керек, бұл клиент-серверлік жүйелерді дамытуда, оларды күтіп ұстауда және орнатуда қиындықтар тудырмайды, өйткені үлкен шығындар қажет әр түрлі топтағы мамандардың әрекеттерін үйлестіру бойынша күш-жігер. Әзірлеушілердің әрекеттерінде қайшылықтар жиі туындайды және бұл жүйенің дамуын тежейді және оларды қазірдің өзінде дайындалған және тексерілген элементтерді өзгертуге мәжбүр етеді.
Архитектураның әртүрлі элементтері арасындағы сәйкессіздіктерді болдырмау үшін біз екі деңгейлі клиент-сервер архитектурасының екі модификациясын жасадық: «Fat Client» («Жіңішке Сервер») және «Жұқа Клиент» («Fat Server»).
Бұл архитектурада әзірлеушілер деректерді өңдеуді екі физикалық бөліктің біреуінде - клиент жағында («Қалың клиент») немесе сервер жағында («Жұқа клиент») орындауға тырысты.
Әр тәсілдің айтарлықтай кемшіліктері бар. Бірінші жағдайда желі негізсіз шамадан тыс жүктеледі, өйткені өңделмеген, яғни оның үстінен артық мәліметтер беріледі. Сонымен қатар, жүйені қолдау және оның модификациясы күрделене түседі, өйткені қатені түзету немесе есептеу алгоритмін ауыстыру барлық интерфейс бағдарламаларын бір уақытта толық ауыстыруды қажет етеді, егер толық ауыстыру жасалмаса, онда мәліметтер сәйкессіздігі немесе қателіктер пайда болуы мүмкін. Егер барлық ақпараттарды өңдеу серверде орындалатын болса, онда кіріктірілген процедураларды сипаттауда және оларды жөндеуде мәселе туындайды. Ақпаратты серверде өңдейтін жүйені басқа платформаға (ОЖ) ауыстыру мүлдем мүмкін емес, бұл өте маңызды кемшілік.
Егер сіз «Client-Server» екі деңгейлі классикалық архитектурасын жасасаңыз, онда сізге келесі фактілерді білу қажет:
Thick Server архитектурасы Thin Client архитектурасына ұқсас
Клиенттен серверге сұраныс жіберу, сервермен сұранысты өңдеу және нәтижені клиентке беру. Алайда архитектураның келесі кемшіліктері бар:
- іске асыру күрделене түседі, өйткені SQL сияқты тілдер мұндай бағдарламалық жасақтаманы әзірлеуге бейімделмеген және оңтайландыру құралдары жоқ;
- SQL сияқты тілдерде жазылған бағдарламалардың өнімділігі басқа жүйелермен салыстырғанда өте төмен, бұл күрделі жүйелер үшін өте маңызды;
- ДҚБЖ тілдерінде жазылған бағдарламалар, әдетте, өте сенімді жұмыс істемейді; олардағы қате мәліметтер базасының бүкіл серверінің істен шығуына әкелуі мүмкін;
- алынған бағдарламалар басқа платформалар мен жүйелер үшін мүлдем тасымалданбайды.
- «Қалың клиент» архитектурасы «Жіңішке сервер» архитектурасына ұқсас
Сұраныстарды өңдеу клиент тарапынан жасалады, яғни серверден алынған барлық шикі деректер клиентке беріледі. Бұл жағдайда архитектураның жағымсыз жақтары бар:
- бағдарламалық жасақтаманы жаңарту күрделене түседі, өйткені оны бүкіл жүйеде бір уақытта ауыстыру қажет;
- өкілеттіктерді бөлу күрделене түседі, өйткені қол жетімділіктің дифференциациясы әрекеттер арқылы емес, кестелер арқылы жүреді;
- желі арқылы шикі деректердің берілуіне байланысты шамадан тыс жүктеме бар;
- деректерді әлсіз қорғау, өйткені қуаттарды дұрыс бөлу қиын.
Тізімдегі мәселелерді шешу үшін көп деңгейлі (үш немесе одан да көп деңгей) «Клиент-сервер» архитектурасын қолдану қажет.
Достарыңызбен бөлісу: |