Осы модельдегі дерекқор серверлері тек ДҚБЖ қызметтерімен
айналысады: ДҚ құру және жүргізу қызметтерін қамтамасыз етеді,
реляциялық ДҚ біртұтастығын сақтайды, деректер қоймасының
қызметін қамтамасыз етеді (warehouse services). Бҧдан басқа, ДҚ
резервтік көшірмелерін жасау жəне істен шыққан кейін ДҚ қалпына
келтіру, транзакциялардың орындалуын басқару жəне ескірген
(мирасқор болған) қосымшаларға (legacy аррИсайоп) қолдау көрсету
қызметтері жҥктеледі.
Бҧл модель екі деңгейлі модельдерге қарағанда аса ҥлкен иілімдікке
ие. Клиенттер OLAP-қосымшаларының (On-line analytical processing)
саласына жататын, дерекқорда кҥрделі аналитикалық есептеулер
жасайтын жағдайда, қосымша серверінің моделінің артықшылықтары
аса айқын. Осы модельде клиенттің бизнес-логикасының ҥлкен бөлігі
нақты ДҚБЖ-де іске асырылған, кіріктірілген SQL мҥмкіндіктерінен
оқшауланған жəне С, C++, Cobol сияқты бағдарламалау тілдерінде
орындалуы мҥмкін. Бҧл жҥйенің төзе алушылығын, оның
ауқымдылығын арттырады.
10.6.
Дерекқор серверлерінің модельдері
Алғашқы ДҚБЖ қҧру кезеңінде клиент-сервер технологиясы жаңа
ғана пайда бола бастаған. Сондықтан бастапқыда жҥйелер сəулетінде
―клиент‖ жəне ―сервер‖ сияқты процессорлардың өзара əрекеттесуін
ҧйымдастырудың барабар механизмі болмаған. Қазіргі заманғы ДҚБЖ-
де ол іс-жҥзінде негізін қалаушы болып табылады жəне оның іске
асырылу тиімділігіне жалпы жҥйенің жҧмыс істеу тиімділігі тəуелді.
Ҧқсас механизмдерді ҧйымдастыру тҥрлерінің эволюциясын
қарастырайық. Негізінен бҧл механизм серверлік ҥрдістерді іске асыру
қҧрылымымен айқындалады жəне жиі дерекқор серверінің сәулеті деп
аталады.
Бастапқыда, атап өткендей, деректерді басқару (сервер қызметі)
жəне пайдаланушымен өзара əрекеттесу бір бағдарламада біріктірілген
модель болған. Оны ДҚ серверлерін дамытудың нөлдік кезеңі деп
атауға болады.
Содан кейін деректерді басқару қызметтері сервер деген дербес
топқа бөлініп алынған, алайда пайдаланушының сервермен өзара
əрекеттесу моделі дерекқор кестелерінің арасындағы ―бірге бір‖
байланыстар қҧрылымына сəйкес келді (10.7-сур.), яғни сервер тек бір
пайдаланушының (сервердің) сҧраныстарына қызмет көрсетті, ал
бірнеше клиентке қызмет көрсету ҥшін баламалы сервер санын іске
қосу керек.
Серверді жекелеген бағдарламаға ерекшелеу революциялық қадам
болды, ол атап айтқанда, желі бойынша өзара əрекеттестіре отырып,
серверді бір машинаға, ал пайдаланушысы бар бағдарламалық
интерфейсті басқа машинаға орналастыру мҥмкіндігін берді.
Алайда көптеген пайдаланушыға қызмет көрсету ҥшін сервердің ҥлкен
көлемін іске қосу қажеттігі осындай жҥйенің мҥмкіндіктерін қатты
шектеді.
Клиенттің көп санына қызмет көрсету ҥшін серверде бір уақытта
жҧмыс істейтін серверлік процессордың көп саны іске қосылу керек
болатын, ал бҧл ЭЕМ ресурстарына қойылатын талаптарды арттырады.
Бҧдан басқа, осы модельдің əрбір серверлік ҥрдісі тəуелсіз ретінде
іске қосылған, сондықтан егер бір клиент басқа серверлік
процессормен
басқа
клиент
ҥшін
орындалған
сҧранысты
қалыптастырса, онда сҧраныс қайтадан орындалады. Мҧндай модельде
серверлік ҥрдістердің өзара əрекеттесуін қамтамасыз ету өте қиын. Бҧл
модель ең қарапайым дəне бірінші болып пайда болған.
―Бірге бір‖ ақпараттық моделінде туындайтын мəселелер көп
клиенттен сҧраныстарды өңдеуге қабілетті, сервері жеке бөлінген
жҥйелер сəулетінде шешіледі. Сервер ғана деректерді басқару
монополиясына ие жəне бір уақытта бірнеше клиентпен өзара
əрекеттеседі (10.8-сур.). Логикалық əрбір клиент сервермен сҧрату
жіберілетін жекелеген жіппен (thread) немесе ағынмен байланысқан.
Мҧндай сəулет кӛп ағынды бір сервер деген атқа ие болады (multi-
threaded). Ол көп пайдаланушы жҧмыс істеген кезде туындайтын
(trashing) операциялық жҥйеге жҥктемені азайту мҥмкіндігін береді.
Бҧдан басқа, көптеген клиенттің бір сервермен өзара əрекеттесу
мҥмкіндігі бөлінетін объекттерді (ашық файлдардан бастап жҥйелік
каталогтағы деректермен аяқтай отырып) толық шамада пайдалану
мҥмкіндігін береді, бҧл жадтың тҧтынушылығын жəне операциялық
10.7-сур. ―Бірге бір‖ моделіндегі клиенттік жəне серверлік ҥрдістердің
өзара əрекеттесуі
«один к одному»
10.8-сур. Көп ағынды бір серверлі сəулет
жҥйе ҥрдістерінің жалпы санын айтарлықтай азайтады. Мысалы, ―бірге
бір‖ моделі бар жҥйе 100 пайдаланушы ҥшін ДҚБЖ ҥрдістерінің 100
кқшірмесін жасайды, сол уақытта көп ағынды сəулеті бар жҥйеге ол
ҥшін тек бір серверлік ҥрдіс қажет болады.
Алайда мҧндай шешімнің өз кемшіліктері бар. Себебі серверлік
ҥрдіс тек бір процессорда орындалуы мҥмкін, мультипроцессорлы
платформалар ҥшін ДҚБЖ қолданылуына табиғи шектеу туындайды.
Егер компьютердің, мысалы, төрт процессоры болса, онда бір сервері
бар ДҚБЖ қалған ҥшеуіне жҥктеме салмай, тек біреуін пайдаланады.
Кейбір жҥйелерде бҧл мəселе аралық диспетчерді енгізумен
шешіледі. Ҧқсас сəулет виртуалды сервердің сәулеті деп аталады
(virtual server) (10.9-сур.).
Осы сəулетте клиенттер шынайы серверге емес, серверге
сҧратуларды диспетчерлеу қызметін атқаратын, диспетчер деп
аталатын аралық буынға қосылады. Бҧл жағдайда көп процессорлы
платформаны пайдалануға шектеу жоқ. Сервер саны жҥйедегі
процессор санымен келісілуі мҥмкін.
Алайда осы сəулет те кемшіліксіз емес, себебі мҧнда жҥйеге клиент
пен сервер арасында орналастырылатын жаңа қабат қосылады, бҧл
серверлерді жҥктеу (load balancing) теңгеріміне қолдау көрсету
ресурстардың тҧтынылуын арттырады жəне клиент-сервер өзара
əрекеттестігін басқару мҥмкіндігін шектейді. Біріншіде, нақты
клиенттен сҧранысты нақты серверге жолдау мҥмкін емес; екіншіден,
серверлер тең қҧқылы болады, себебі сҧраныстарға қызмет көрсету
ҥшін басымдылықтар орнату мҥмкіндігі жоқ.
Клиент пен сервер арасындағы осындау өзара əрекеттестікті
ҧйымдастыру бірнеше кассир терезесі жəне арнайы банк қызметкері,
əрбір келушіні (клиентті) бос кассирге (өзекті серверге) жолдайтын зал
əкімшілігі болатын, банк баламасы деп қарастырылуы мҥмкін.
10.9-сур. Виртуалды сервер сəулеті
Достарыңызбен бөлісу: |