- •2.1. Дәріс сабақтарының конспектісі
- •Интерфейстің келісімділігі.
- •Диалогты жүргізу қарқыны
- •Кескінделген ақпараттың визуалды атрибуттары
- •Түсті қабылдау сипаттамасы
- •Кеңістіктік сипаттамалар
- •Лингвистикалық транслятордың құрылымдық сұлбасы
- •Басты Корпус Аудитория
- •Location: http://host/file.Txt пайдаланушымен талап етілген болса, Web-сервер file.Txt-ны шығарылуына әкеледі.
Дәріс
Нөмір
232
Аты
Басты Корпус Аудитория
Өткізеді
Оқиға
Объект Орны Орны
Мінездеме
Мінездеме.
Мәні Мәні
14-ші сурет. Сөйлемнің семантикалық жүйесі\
Семантикалық синтез М тілінің мәтінінде оның бөліктері алдағы фразаларға және ТТ сөйлемдеріне сәйкес келетіндей түрлендіруде бірігеді.
Әдебиет: 2нег.[43-77], 9нег.[31-41], 1қос. [42-48].
Бақылау сұрақтары:
1.Табиғи тілдің талдау және синтезі неде байланысады?
2.Табиғи тілдің морфолгиялық талдауы қандай тәсілдермен өткізіледі?
3. Табиғи тілдің синтаксистік талдауы қандай тәсілдермен өткізіледі?
4. Морфологиялық,синтаксистік талдауға және семантикалық интерпритацияға мысал келтіріңіз.
5. ТТ-ң морфологиялық, синтаксистік сараптау және семантикалық интерпретациясына мысал келтіріңіз.
10-шы дәріс. Пайдаланушылық интерфейстердің классификациясы.
Графикалық және графикалы емес пайдаланушылық интерфейстердің ерекшеліктері. Программалық құрылғылар индустриясында қолданылатын пайдаланушылық интерфейстердің бірқатар классификациясы бар.
Қазіргі уақытта қолданылатын жалпы классификацияны қарастырайық . Жалпы жағдайда пайдаланушылық интерфейстерді екі үлкен топқа бөлуге болады: - WIMP-интерфейсі, оның компоненттер: window-терезе, icon-пиктограмма, menu-меню, pointer-көрсеткіш болып табылады. - SILK-интерфейсі, speech-сөз, icon-пиктограмма, language-тіл, knowledge-білім. Қазіргі уақытта WIMP-интерфейс тобы кеңінен таралған. Арнайы облыстарда қолданылатын SILK-интерфейстер тобы сирек қолданылады.Төменде программалық өнімдерді жобалаушыларда кеңінен таралған WIMP-интерфейс туралы толығырақ қарастырамыз. Қазіргі кезде қолданылатын пайдаланушылық интерфейстердің классификациясын қарастырайық, олар төрт топқа бөлінеді: : - графикалық пайдаланушы интерфейсі (Graphical User Interfase - GUI);
- пайдаланушы Web-интерфейсі (WEB-User Interfase WUI);
- қалта құрылғыларын пайдаланушы интерфейсі (Hand-User Interfase-HUI);
- графикалық емес командалық жолдың пайдаланушы интерфейсі (Command Line Interfase CLI).
Графикалық пайдаланушы интерфейс (GUI).
Графикалық пайдаланушы интерфейс (Graphical User Interfase – GUI) “пайдаланушы-компьютер” қарым-қатынасының стилі ретінде анықталады. Онда мынандай негізгі элементтер қолданылады: терезелер, пиктограммалар, меню және көрсеткіштер. Кейде GUI-интерфейсін WMP-интерфейсі деп атайды.
GUI-интерфейсінің негізгі қасиеттері – ол манипуляция жасау мүмкіндігі, тышқан немесе көрсеткіштің қолданылуы, графиканың пайдалануы, функция мен мәліметтер қосымшасы ауданының болуы. GUI – компоненттерін тереңірек қарастырайық. Терезе – ол бейнелеу құрылғысының облысы, объектілермен, объектілер туралы ақпаратпен өзара қатынасы үшін қолданылады немесе объектілерге қолданылатын әрекеттерді орындауға арналған. Терезеде тақырыптар жолы болады, ауыспалы операциялар теруіне ие болады, мөлшерінің өзгеруі, меню теруімен және объектілер туралы ақпарат көрсететін арнайы облысы болады. Әдетте терезе тікбұрышты болып келеді.Онда терезені қолданатын қосымша, GUI–бағытталған қосымша болып келеді. Терезе ақпаратты құрылғы бейнесінің тек қана бір аймағына немесе облысқа бейнелейді. Бейнелеу құрылғысын жарым-жартылай қолдану, бірмезетте бірнеше объектілермен немесе диалогты басқарушылармен өзара қатынаста болу үшін бірнеше терезені қарап шығуға мүмкіндік береді.
Пиктограммалар. Пиктограмма көп жағдайда терезеге ұқсас болып келеді, бірақ формальды анықтамаға сәйкес – бұл бейнелеу құрылғысының облысы, объектіні көрнекті қылу үшін қолданылады. Пиктограмманың типтік қасиеттері объектіні, тақырыбын немесе атын көрсету үшін графикалық символдарды қосады сонымен қатар операцияларды манипуляциялайды. Пиктограммада орындалатын, объектіні сипаттайтын – бұл Open (ашу) операциясы, ол объект туралы ақпараты бар терезені сипаттайды.
GUI– интерфейсінде қолданылатын, формальді түрде пиктограмма болып саналмайтын графикалық символдардың жиыны бар. Объектілердің атрибуттерін, жағдайларын және әрекеттерін сипаттайтын графикалық символдар ақырғы пайдаланушылармен пиктограмма сияқты қабылдануы мүмкін. Бірақ GUI–интерфейсі және стандарттарды құрастырушылардың көзқарасы бойынша, оларды графикалық батырмалар ретінде қарастырған жөн. Мұндай жағдайларда графикалық символдардың қолдануына мына терминдер “пиктограмма” және “графика” арқылы өзара алмастырылады.
Меню. Меню баламалардың қатарын көрсетеді. Оның көмегімен пайдаланушы, өзінің таңдауын жүзеге асырады. Әдетте GUI бағытталған менюдің баламасы –объектілермен амалдар орындау үшін, пайдаланушылармен таңдалатын командалардың аттары болып келеді. File (Файл) менюі- менюдің мысалы, ал File менюінде орналасқан - Print командасы баламалы нұсқасының мысалы болып табылады. Менюде барлық пайдаланушы командалар орналасқан. Жүйенің графикалықтан өзгешесі, керісінше менюде дисплей толығымен қолдану қажет. Бірақ меню иерархия тәсілімен орналасу қажет.
Көрсеткіштер. Графикалық жүйелер әдетте тышқанның немесе жұмыр манипулятор түріндегі координаттық - сілтеуіш құрылғылардан тұрады.
Координаттық - сілтеуіш құрылғы деп пайдаланушы енгізуді осы құрылғы көмегімен жүзеге асыра алатын экрандағы орынды түсінеміз. Көрсеткіш - ол графикалық символ. Координаттық - сілтеуіш құрылғыға жүйеге кірудің орынын визуальды көрсетеді. GUI интерфейсте қолданылатындар көрсеткіштер, бағыт түріндегі жүйелік көрсеткіштен, графикалық қайта түйісу және І- бейнелі немесе бөренелік көрсеткіштен тұрады.
Тікелей манипуляциялау. GUI интерфейсінің ең маңызды қасиеті - тікелей манипуляциялауда болып табылады. Ол пайдаланушыға көрсеткіштің көмегімен объектілермен өзара қатынаста болуға мүмкіндік береді. . Мысалы , тышқанның көмегімен терезенің экрандағы орнын ауыстыруға болады. Терезе тақырыбы жолына көрсеткішті орналастырып , тышқанның батырмасын басып ұстап, тышқанды да жылжытып отырамыз. Меню немесе баламаларды таңдаудың көмегімен орындалатын әрекеттерді, тікелей манипуляциялауды қолдана отырып орындауға болады. Мысалы , көптеген жүйелерде құжат пиктограммаларын жұмыс үстеліндегі принтер пиктограммасына тасу нәтижесі - құжатты баспаға шығару болып табылады. Тікелей манипуляция арқылы орындалатын әрекеттерге Move (орын ауыстыру) ,Copy (көшіру), Delete (өшіру), Link (байланыстыру) операциялары жатады.
Басқада қасиеттер. GUI - интерфейске тән басқада жұмыс әдісіне - айырбастау буфері , пернелердің қиыстырулары , менюде және диалогта үдейтін пернелер, сонымен қатар тышқан - пернелердің өзара қатынасының қосымша мүмкіншіліктері жатады. Бұл механизмдер пайдалы болғанына қарамастан, GUI- интерфейстің маңызды қасиеттері ретінде қарастырылмайды.
GUI-интерфейсі қолданбалықтың жоғары дәрежесіне кепілдік бермейді. Бірақ дұрыс деңгейде жобаланған GUI-бағытталған программалық қосымша, пайдаланушы жұмысының тиімділігі жағынан, оның графикалық емес аналогынан асып түсуі мүмкін.
Пайдаланушылық - интерфейс (WUI).
Негіздік WUI - стиль (Web User Interfase) иерархиялық құрылым менюіне ұқсас. Оны пайдаланушылар гиперсілтемелерді қолданудан басқаларын, графикалық емес интерфейс ортасында жұмыс істеу тәжірибесінен біледі. Қажетті навигация мәтіндік немесе визуалды гиперсілтемелерді пайдалану арқылы, бір немесе бірнеше қосымшалардың шеңберінде орындалады. қолданумен выполняется рамкаларда тердің немесе көзбен шолулардың гиперссылок . Гиперсілтемелердің құрылымына байланысты WUI интерфейсі шеңберінде, навигация қосымшасы, Web–парақтарды қосымша иерархиясында бір терезенің ішінде бір рет көрсетеді. тәуелділіктер құрылымдар гиперссылок қосымша навигация шектерде - ертіп әкеледі елестетуге иерархиялар қосымшалар біреудің үшін бір ішінде бірдің терезелер . WUI - стилі қолданатын қосымшаның негізгі ерекшеліктері төменде келтірілген:
- хабар әдетте, бір терезеде беріледі. Ол броузер деп аталынады, бірақ мәліметтерді қосымшада көрсету үшін бірнеше броузер терезесін қолдануға болады;
- броузер Web - қосымшаны менюмен қамтамасыз етеді ;
- әрекеттердің таңдауы шектелген, себебі функцияға қатынасты қамтамасыз ететін менюдің, қосымшамен өзара қатынасы күрделі;
- Web–парақ арнайы, кездейсоқ шығып қалатын менюді ашу үшін, клиенттік облысқа ішкі бақылау жүргізе алады.
- арнайы менюді жасау, қосымша программалау жұмыстарын талап етеді ;
- клиенттік облыстың дәстүрлі пиктограммалары жоқ ;
- көптегендер қосымшалар графикті және анимацияны эстетикалық немесе навигациялық мақсаттарда қолданады.
- броузер және оның қосымшалары WEB-парақтардағы графиктердің өшу мүмкіндіктерін қанағаттандырады, сондықтан бізге тек мәтіні көрінеді.
- көрсеткіштің сүйеуі негізінен тышқан батырмасын шерту арқылы немесе навигациялық сілтеулерді таңдау арқылы іске асырылады. “Drag and drop” технологиясы, белгілі ортадағы арнайы программалаудан басқа жерлерде, қолданылмайды. 2 батырмасының және тышқанның істейтін функциялары шектеулі.
Навигация. Гиперсілтеулерді немесе WUI-интерфейсінің функциялары арқылы орындалатын іздеу механизмін қолдану арқылы бір парақтан келесі параққа көшу. Пайдаланушы кездесетін парақтар сол немесе басқа WEB-түйіндер арқылы пайда болады.
WEB-броузер WEB-түйіндерде орын ауыстыру және WEB-түйіндер шегіндегі Back(Артқа) және Forward(Алға) батырмаларының базалық мүмкіндіктерін іске асырады. Сол және басқа WEB-түйіндердегі бір парақтан келесі параққа көшу навигациясы гиперсілтеулерді, WEB-түйіндердің сұлбаларын, батырмаларды және навигациялық панельді қолдану арқылы орындалады. WEB-парақтың негізгі мәні WEB-түйіндерге навигациялық құрылымды қолдану арқылы қажетті мәліметтерді қамтамасыз ету болып табылады. WEB-парақтар бір немесе бірнеше шексіз өрнектер мен түрлі-түсті графикалық элементтердің үйлесімді конструкциясы арқылы құралады. WUI-қосмшалары GUI-қосмшаларына қарағанда пайдаланушы арқылы шақырылмайтын шексіз элементтерден тұрады.
WUI-интерфейсінің компоненттері. WUI-интерфейсінің кең таралған компоненттеріне баннерлер, навигациялық панельдер және әртүрлі әдістермен реттелген визуалдық немесе мәтіндік гиперсілтеулер жатады. Және де анимацияларға, графикаларға және түстерге қолданылатын әрекеттер орындалады:
- баннер – WEB-парақтардың жоғарғы бөлігінде көрінетін визуалдық тақырып;
- навигациялық панель – мәліметерге рұқсат етуді қамтамасыз ететін гиперсілтеулерді таңдаудың нұсқалары;
- гиперсілтеулер – келесі парақтың мәліметін көрсететін немесе суреттің фокусын басқа облысқа ауыстыратын таңдау нұсқалары;
- броузер – типтік броузер тақырыптан, экран шеңберінде көрінетін навигациялық панель облысынан тұрады;
- каталог – нәтиже табылғанша қосымша іздеу нұсқалары арқылы навигация үшін қолданылатын гиперсілтеулерді таңдау нұсқаларының тізімі;
- іздеу және іздеу нәтижесі – пайдаланушы мәтінді іздеудің критерийлерін енгізетін және таңдайтын бір немесе бірнеше басқару элементтері. Іздеу нәтижелері сол немесе басқа WEB-броузер терезелерінде көрсетіледі;
- құжат – WEB-құжат қосымша көздерге сілтеулері бар мәтіндік ақпарат немесе ақпаратты ашық түрде көрсету;
- жазбалар кітапшасы – кейбір WEB-түйіндер мәліметтерді ұйымдастыру үшін қолданылатын метафора түріндегі визуалдық кітапша. Навигациялық панельден айырмашылығы таңдау нұсқалары аз мөлшерде болу ғана.
Қалталық құрылғылардың пайдаланушылық интерфейсі (HUI).
Қазіргі кезде компьютерлердің екі PDA (Personal Digital Assistant-жеке цифрлық ассистент – кейбір арнайы функцияларды орындауға арналған қалталық компьютер) класы белгілі – біріншісінде кәдімгі GUI-стиль, екіншісінде GUI-интерфейсінің ішкі жиыны қолданылады. Пайдаланушының мәліметтерін енгізу үшін қалам және сенсорлық экраннан тұратын жестикуляциялық стиль қолданылады.
Әдетте, мұндай құрылғылардың экрандары өте кішкентій болады. PDA дисплейінің әрбір ауданы үстелдік және ықшам жүйелер үшін қолданылатын GUI-қосымшаларының терезелерінен кіші. PDA үшін негізінен столдық немесе ықшам компьютерлерге арналған GUI-бағытталған программалар қолданылады.
HUI-интерфейсі GUI-интерфейсінің кейбір мүмкіндіктерін қамтамасыз етеді, атап айтсақ пиктограмма, меню және көрсеткіштің қалпы. HUI-интерфейсі үшін жалпы стильді SIMP-стиль деп атауға болады (Screen – экран, Icon – пиктограмма, Menu – меню және Pointer – көрсеткіш). Осы арқылы GUI-интерфейсінің көптеген қасиеттері қамтамасыз етіледі, олардың кейбірі төменде көрсетілген.
Пиктограммалар көптеген PDA-ларда қолданылады. Олардың мүмкіндіктері көрсету құрылғысының түріне сәйкес өзгереді. Пиктограммалар GUI-интерфейсіндегі секілді объектілерді, атрибуттарды және әрекеттерді ұсыну үшін қолданылады.
б) Меню қатарлары және де менюдің өзі талап ету арқылы көрінеді, және осындай компоненттерге сай қасиеттерге ие болады.
в) Қалам бір шерту секілді көрсеткіш ретінде жұмыс істейді. Диалогтар шақырылып жатқан объекттерді жауып тұратын терезелерде көрсетіледі. Мұндай терезелер GUI-терезелердің стандартты безендірулерін қабылдай алмайды. Олардың орнын ауыстыруға немесе өлшемдерін өзгертуге болмайды.
Кейбір PDA-ларға пернетақтаны қосуға болады, бірақ пайдаланушы қалам мен көрсеткіштердің бірге жұмыс істеуін үйрінуі қажет. Кейбір командаларды GUI-интерфейсінің командаларды тез таңдау пернелеріне эквивалентті «жестикуляциялық» пернелер комбинациялары арқылы орындауға болады.
HUI-бағытталған қосымшалардың негізгі мәселелері төменде келтірілген.
Пайдаланушының мәлімет енгізулеріндегі талап етуді оңайлату.
Дисплейдің шектелген ауданын қолдану.
Командалық қатардың графикалық емес пайдаланушылық интерфейс(Command Line Interface – CLI).
Бұл интерфейс қосымшалармен жиі жұмыс істейтін дайындалған пайдаланушыларға арналған. Пайдаланушы қатаң белгіленген ішкі құрылымы бар командалар арқылы қосымшалармен жұмыс істейді. Командалар коды осы командалар арқылы орындалатын қосымшалардың функциясын теңестіреді. Командалар коды функцияның аталуын көрсетеді және түсінікті тілдегі сөздер арқылы немесе қысқартылған түрде жазылады. Командалар пайдаланушыға жүйенің сауалдарына жауап беріп отырудың орнына, лезде керекті функцияны өзгешеліктерін анықтауға мүмкіндік береді.
Әдебиет:1нег.[20-26],2 нег.[80-98], 7қос.[100-117]
Бақылау сұрақтары:
Пайдаланушы интерфейстері қандай кластарға бөлінеді?
GUI-ді қолданудың қандай ерекшеліктері бар?
WUI-ді қолданудың қандай ерекшеліктері бар?
HUI-ді қолданудың қандай ерекшеліктері бар?
11–ші дәріс. Компьютерлік иерархиялық жүйенің ақпараттық өзара қатынас интерфейсі.
Ақпараттық өзара қатынас деңгейінің жүйесі. Ақпараттық өзара қатынас деңгейінің интерфейстері мен хаттамаларының өзара қатынасы.
Ақпараттық өзара қатынас интерфейстерін WEB-қосымша мысалында қарастырайық. Бұдан бұрын қарастырылған пайдаланушылық WUI, қосымша деңгейінің программалық интерфейсімен тікелей байланысты екенін атап өту керек. Интернет торабындағы түрлі обектілердің өзара қатынасы ISO 7498 (ISO – International Organization for Standardization) жалпы халықаралық стандарттық ережелері мен талаптарына сай құрылады.
Бұл стандарт үш тақырыптан тұрады “Ақпаратты есептеу жүйесі – Ашық жүйелер өзара қатынасы – Эталонды модель”. Әдетте оны қысқаша – “Ашық жүйелердің өзара қатынасының эталонды моделі” деп атайды. 1983 жылғы осы стандарттың жарияланғаны көптеген белгілі телебайланыстағы компаниялардың және стандарттаушы ұйымдардың көп жылдық жұмысының қорытындысы болды. Осы құжаттың негізі болып табылатын негізгі мақсаты, жүйе аралық ақпараттық өзара қатынас процесін, нақты анықталған қызметімен деңгейлерге бөлу.
Өзара қатынас моделі ретінде OSI (Open System Interconnection) Америка ұлттық стандарт институты ұсынған құрылым болды ANSI (American National Standards Institute) ISO 7498 телебайланыс саласындағы стандарт болып табылады.
Әр салалы ұйымдық өзара қатынастың артықшылығы ол деңгейлік стандарттың дербес жоспарымен қамтамасыз етеді және ақпараттық есептеу жүйесінің программалық қамтамасыз етуі және құрылғының модульді болуы, осы саладағы техникалық дамудың деңгейіне ықпал етеді.
Көп деңгейлік модельді қолданғанда, торап түйіндерінің арасында ақпараттың орнын ауыстыру үшін, ең кіші бөлшектерге бөледі, демек мәселелерді жеңіл шешуге ықпал етеді. Көп деңгейлік модель ақпарат қалай бір қолданбалы программадан, мысалы кестені өңдеуден, басқа компьютерлік торапта тұрған, сол кестені өңдейтін екінші қолданбалы программаға өту жолын сипаттайды.
Мысалы 15-ші суретте көрсетілген А жүйеде Б жүйесіне жіберетін ақпарат бар. А жүйесінің қолданбалы программасы ,А жүйесінің 4-ші деңгейімен (жоғарғы деңгей) байланыса бастайды да, өз кезегінде, А жүйесінің 3-ші жүйесімен байланыса бастайды. Сөйтіп А жүйесінің 1-ші деңгейіне жетеді. 1-ші деңгейдің міндеті ақпаратты тораптың физикалық ортадан алып, беру. Осыдан соң ақпарат тораптың физикалық ортадан өткеннен кейін, Вжүйесіне келіп түседі де, В жүйенің әр деңгейінде өңделіп отырады. Бұл құбылыс кері ретпен 1-ші деңгейде сосын 2-ші деңгейде жүреді және т.с.с. В жүйесінің қолданбалы программасына жеткенше орындалады.
К
өп
деңгейлік модель өзара қатынастағы
жүйенің деңгейімен тікелей байланыстыру
бағытын ұстамайды демек, А жүйесінің
әрбір деңгейі оған берілген. В жүйесінің
сәйкес деңгейімен байланыс орнату үшін,
А жүйесінің аралас деңгейінің көмегіне
сүйенуі керек. Мысалы үшін А жүйесінің
4-ші деңгейі В жүйесінің 4-ші деңгейімен
байланысқа түсуі керек дейік. Ол үшін
А жүйесінің 4-ші деңгейі А жүйесінің
3-ші деңгейінң көмегіне сүйену керек.
Сонда 4-ші деңгей “көмек алушы” болып
есептелінеді, ал 3-ші деңгей “көмек
беруші” болып есептелінеді.
15-ші сурет.
Көрсетілетін қызмет туралы ақпарат деңгейлер арқылы, арнайы ақпараттық блоктар арқылы беріледі. Бұл тақырып деп аталынады. Тақырып әдетте берілген қолданбалы ақпараттың алдында болады.
16-шы сурет. Әртүрлі деңгейдегі деректердің инкапсуляция блоктары.
Мысалы, А жүйесі В жүйесіне бір мәтінді жібергісі келеді дейік. Мәтін “деректер” немесе “ақпарат” деп аталынады. Бұл мәтін А жүйесінің қолданбалы программасынан, осы жүйенің жоғары деңгейіне беріледі. А жүйесінің қолданбалы деңгейі, В деңгейінің қолданбалы деңгейіне белгілі бір ақпаратты жіберуі керек, сондықтан ол өз деңгейінің басқарушы ақпаратты тақырып түрінде, берілетін тиісті нақты мәтіннің алдына орналастырады. Осындай жолмен құрылған ақпараттық блок, өз өзіне меншікті басқарушы ақпаратпен оны ескерте алатын А жүйесінің 3-ші деңгейіне беріледі.
Хабарлама мөлшері, төмен деңгейлер арқылы торапқа жеткенге дейін өседі. Мұнда мәтіннің түпнұсқасы және онымен түгелдей байланысқан басқарушы ақпарат, В жүйесіне көшеді және В жүйесінің 1 деңгейімен жұтылады. В жүйесінің 1 деңгейі түскен ақпараттан тақырыбын бөліп алады және өңдейді, содан кейін ол келіп түскен ақпараттық блокты қалай өңдейтінін анықтайды. Мөлшерлері азайтылған ақпараттық блок 2-ші деңгейге беріледі. Ол берілетін деңгейдің тақырыбын бөледі және оның орындайтын әрекетін білу үшін сараптайды. Қашан ақпараттық блок В жүйесінің қолданбалы бағдарламаларына жеткенде, ол тек түпнұсқалы мәтінге ие болу керек.
Тақырып және мәліметтер құрылымы салыстырмалы түрде, сол сәтте ақпараттық блокты сараптайтын деңгейге тәуелді болады. Мысалы, 2 деңгейдегі ақпараттық блок, осы деңгейдің және оның ізінен тізілетін тақырыптан құралады. Бірақ 2 деңгейдің мәліметтері 3 және 4 деңгейлердің тақырыбынан да тұруы мүмкін. Сонымен қатар, 2 деңгейдің тақырыбы 1 деңгейге қарапайым мәлімет болып келеді. Тақырып түріндегі әрбір жүйенің деңгейіндегі ақпараттық блок тексерілген қосындымен сәйкес келетін КонтСум арқылы аяқталады. Бұл концепция 16-шы суретте бейнеленеді.
Берілген модель бір-біріне салынған матрешканы еске түсіреді. Олардың ішіндегі ең кішкентайы – пайдаланушының мәліметтері, ал барлық қалғандары тағайындау нүктесіне мәліметтерді жеткізу үшін қызмет етеді .
Басқаша айтқанда, бұл жұмыстың механизмі нәтижесінде жоғары деңгейдегі әрбір пакет төмен деңгей протоколының “ конвертіне “ салынады.
ISO 7498 стандартына сәйкес ақпараттық өзара қатынастың жеті деңгейі (қабаттары) белгіленеді:
1. Физикалық деңгейі (Physical Layer)
2. Каналдық деңгейі (DataLink Layer).
3. Тораптық деңгей (Network Layer).
4. Транспорттық деңгей ( Transport Layer).
5. Сессиялық деңгей ( Session Layer).
6. Ұсыну деңгейі ( Presentation Layer).
7. Қосымша деңгейі ( Application Layer).
Екі не одан да көп жүйенің ақпараттық өзара қатынасы, ішкі деңгейілік жүйелердің ақпараттық өзара қатынасының жиынтығын береді. Сайып келгенде, локальді ақпараттық жүйелердің әрбір қабаты, сәйкесінше алыстатылған жүйенің қабатымен өзара қатынаста болады.
Анықтама.
Протокол – аттас деңгейлердің объектілерінің өзара қатынас алгоритмдерінің (ережелері ) жиынтығы.
Ақпараттық жүйелердің қабаттары (деңгейлері) бір-бірімен өзара қатынаста болады. Онда тікелей өзара қатынасқа тек көршілес деңгейлер қатысады. Әдетте, орта деңгей төменгі деңгей ұсынатын қызметтерді пайдаланады, ал өзі, өз кезегінде жоғарғы деңгейге қызмет етеді.
Анықтама .
Интерфейс – берілген деңгейдің объектісімен өзара қатынасы сәйкес жүзеге асатын ережелердің жиынтығы.
Тораптық өзара қатынастың иерархиялық ұйымдасуы, мәліметтердің тасымалдау технологияларында орны басылған өнделген құрылымдарды және олардың өзгерістерге тез бейімделуін қамтамасыз етеді. Мысалы, физикалық тасымалдауыш арқылы мәліметтерді тасымалдаудың жаңа әдісіне көшкенде, тек қана төменгі деңгейде өзгеріс орын алады. Егер протоколдар жүйесі ISO 7498 талаптарына сәйкес ұйымдасса, жоғарғы деңгей өзгеріссіз қалады. Тәжірибе жүзінде берілген стандарттың талаптары протокол стектері түрінде жүзеге асады.
Анықтама
Стек – өзара қатынас протоколдарының иерархиялық ұйымдасқан тобы.
Стекке жататын протоколдар арнайы интерфейс иемденеді. Олар тек сол стектің сәйкес деңгейлерінің протоколдарымен өзара қатынасы үшін арналған. Мұндай стектердің мысалы ретінде ТСР/ IP стегін келтіруге болады.
Әдетте, 7-5 деңгейлер жоғарғы болып есептеледі және нақты тораптың ерекшіліктерін көрсетпейді . Пайдаланушының (хабарлама) мәліметтер блогы осы деңгейлермен біртұтас ретінде қарастырылады. Өзгерістерді тек мәліметтердің өздері өткеруі мүмкін.
Кейде 1-3 және 4 деңгейлер OSI төменгі деңгейлері болып саналады. Бұл деңгейлердің әрбірінде мәліметтерді ұсыну форматы анықталады. Стектің 4-деңгейінен біріншіге өту барысында пайдаланушының хабарламасы тізбектей фрагментеледі және сәйкес деңгейдің мәліметтер блогінің тізбегіне түрленеді.
Анықтама .
Инкапсуляция – фрагментелген мәліметтер блогының бір деңгейден басқа деңгейдегі мәліметтер блогына орын ауыстыру процесі.
Әдетте, жоғары деңгей протоколдар деректері – төмен деңгейдегі протоколдар деректерінің блогына инкапсуляцияланады (тораптық-каналдық). Сонымен қатар, аттас деңгейдегі протоколдар үшін де инкапсуляция орындалуы мүмкін.
Әдебиет: 1нег.[20-26], 2нег. [80-98], 7қос.[100-117], 9қос.[211-234].
Бақылау сұрақтары:
1. Компьютер жүйелерінің әртүрлі деңгейлерінің ақпараттық өзара қатынасы қалай ұйымдастырылады ?
2. Компьютер жүйелерінің деңгейлерінің өзара қатынас протоколы термині қандай мағына береді, мысал келтіріңіздер?
3. Компьютер жүйелерінің деңгейлерінің өзара қатынас интерфейсі термині қандай мағына береді, мысал келтіріңіздер?
4. Компьютер жүйелердегі инкапсуляция және протоколдар стегі терминдері қандай мағына береді?
Тарау 5. Компьютерлік жүйелердің ақпараттық өзара қатынас интерфейстерін құру.
12-ші дәріс. Программалы-аппаратты интерфейстер.
Қосымша деңгейінің өзара қатынас интерфейстері. WEB - қосымшалардың өзара қатынас интерфейсін орындау.
Екі қосымшаның, WEB – броузер және WEB –сервердің ( әдетте бұл екі қосымша әртүрлі машиналарда және соған сәйкес түрлі программалы-аппараттық платформаларда орналасқандықтан, программалы-аппараттық интерфейс терминін қолданамыз) өзара қатынас интерфейсін қарастырамыз.
WEB- қосымшаның өзара қатынас интерфейсін орындағанда ( Hypertext Transfer Protocol – гипертекст тасымал протоколы) қолданылады, WWW- World Wide Web торабында орналасқан, қолданбалы деңгейдегі протокол және әртүрлі ақпаратқа кіру мүмкіндігін қамтамасыз етуші. НТТР протоколы - берілген мәліметтердін түріне байланысыз, ақпаратты көбейтідің жоғарғы өндіргіштік механизмін иемденеді. Протокол объекті – бағытталған технологиялар бойынша құрылған және түрлі тапсырмаларды шешу үшін қолданылады, мысалы таратылған ақпараттық жүйелерді басқару үшін.
Берілген әртүрлі форматтарды сақтау және ұсыну қабілеті НТТР-ді қолдана отырып, WWW жүйесін ерекше енгізу құралы етеді.
Қазіргі кезде HTTP протоколы WWW жүйесінде негізгі протокол ретінде қолданылады. Осыған қарай HTTP протоколында жұмыс істеу әдісін толығырақ қарастырайық. HTTP протоколы WWW серверлерінде ақпараттық ресурстар мен сервистерге қол жеткізуге мүмкіндік береді. WWW торабының көпфункционалды ресурстарына қатынасты унификациялау үшін, серверлер интерфейстер кешенін қолдайды. Ол тораптық ресурстарға қол жеткізу әдістеріне және деңгейлерді құрылымдауға мүмкіндік береді. Әр интерфейс құрылымы мен әдісі бар торап объектісінен тұрады. WWW торабында орналасқан ақпаратты іздеу үшін Web-броузер деп аталынатын арнайы қосымша қолданылады. Объектілердің (клиенттік және серверлік) келісілген өзара қатынасы программалық интерфейс түсінігін қалыптастырады.
Қосымша деңгейінің протоколы негізінде құрастырылған программа – аппараттық интерфейстерді қарастырайық. URI (Uniform Resource Identifier, ресурс идентификаторы), URL (Uniform Resource Locator, ресурстың орны), URN (Uniform Resource Locator, ресурстың аты) - бір сервистің әртүрлі идентификациялық аспектісі. Ол ресурс орналасқан, интернет жүйесі арқылы кіруге болатын тораптың түйінінің түрін, қатынас әдісін және орнын анықтайды. Бұл сервис үш бөлімнен тұрады.
Сұлба. Сервистің түрін идентификациялайды. Ол арқылы сервиске қатынас жасауға болады. Мысалы WWW сервер.
Мекен жай. Ресурстың мекен жайын (хост) идентификациялайды. Мысалы, www.ripn.net.
Кіру мүмкіндігінің аты және жолы. Таңдалынған хоста, ресурсқа толық жол идентификацияланады. Біз оны ресурсқа кіру мүмкіндігіне пайдаланатын боламыз. Мысалы /home/images/image l.gif. Мысалы, Microsoft (WWW-серверде) сайтында орналасқан, readme.txt файлы келесідей идентификаторы бар ресурсқа ие: http://www.microsoft.com/readme.txt. Ол дегеніміз, ресурсқа қатынас үшін HTTP протоколын пайдалану керек, (кіру сұлбасы қос нүктемен бөлінген “:” және пайдаланған протоколдың атын көрсетеді) келесі екі слэш www.microsoft.com серверінің мекен-жайын көрсетеді және файлдың аты /readme.txt қолданылады.
Әдетте, ресурс орналасқан компьютер туралы айтылса, оны URL немесе URN мәндері пайдаланылады, ол егерде ресурс толық белгіленсе (түрі, хост, жолы көрсетілсе) онда URI қолданылады. Әрине таңбаларды орын ауыстыруға болады, бірақ тексте оны не білдіретінін түсіндіру керек.
URI идентификаторы ресурс атын көрсетеді және оның параметрін де анықтайды. Параметрлер жолынан ресурс аты мына таңбамен “?” бөлінеді. Параметрлер жолы тұрақты құырылымдық символ тобынан тұрады, мынадай символмен“&” белгіленеді, мұндай лексама оның параметрінің атынан және оның “=” символымен бөлінген мәнінен тұрады. Бос орын символы “ “, “+” таңбасына ауыстырылады. ASCII символдар жиынтығына кірмейтін лексем символы “%” таңбасына және осы символдың он алтылық мәніне ауыстырылады. Берілген ресурсқа барлық жол параметрлері, бір жол параметрі болып табылады, сондықтан да жолдың жеке параметрлерінің атауының немесе оның реті, түрінің соншалықты маңызды емес. Мысалы: http://www.exe.com/bm/scrshell.run?in=10&go=ok+and+ok&event=l&event=2
Бұл URI идентификатор төрт параметрден тұрады, үшеуі оны сандық, ал екеуі бір атауға ие. URI идентификаторға кейбір параметрдің мәндеріне талдау жатады. Аталмыш мысалда scrshell.run ресурсы.
HyperText Markup Language (HTML) – WWW торабында сақталатын ақпаратты баяндау тілі. HTML файлы графикалық, бейне, аудио ақпараттың қосылғанын білдіретін арнайы кодтан немесе ақпараттың (Web-броузер Java Script, Java) ортасын көрсететін орындау кодынан тұрады. Web-броузер қосымшасы Java және JavaScript тілдері үшін, олар орындалатын операциялық жүйе немесе орта, ал Web-парақ жұмыс істеу үшін бөлінген ресурс болып келеді. Бұл тілдер пайдаланушының деректері бойынша Web парақты құрмайды, оны өзінің жұмысы үшін және пайдаланушы үшін негіз ретінде пайдаланады. Web броузер бұл файлға қол жеткізгенде кодталған HTML файлдағы ақпаратты интерпретациядан өткізіп пайдаланушыға ыңғайлы түрде жеткізеді.
“HT” әріптері HTML протоколы атауында “Hyper Text”- WWW торабында ақпаратты орналастырудың негізгі концепциясын білдіреді. Hyper Text құжаты гиперсілтеме (hyperlinks) деп аталынатын арнайы байланысы бар және ол құжат мәтінінде орналасады. Гиперсілтеме қолданушыға құжаттың бір бөлімнен екінші бөлімге көшуге ғана емес, сонымен қатар WWW торабындағы құжаттармен байланысуға мүмкіндік береді.
Common Gateway Interface (CGI) – бұл WWW жүйесін кеңейту стандарты. WWW серверларға аргументтерді пайдаланушы анықтай алатын программа құруға мүмкіндік береді. CGI интерфейсі пайдаланушының мүмкіндігін арттырады және аталмыш Web парақпен байланысты программа орындауға мүмкіндік береді. Ол дегеніміз WWW- серверінен ақпарат алу мүмкіндігі болады. Мысалы WWW серверді қолданғандар ең соңғы ауа райы болжамы туралы ақпарат ала алады. Ол үшін дерекқордан қазіргі уақыт мезетіне ауа райына сұраныс жасайтын программаны орындау қажет. CGI интерфейсі WWW сервер мен сыртта орындалатын программалардың байланыс құралы болып табылады. Ол пайдаланушының сұранысын қабылдайды да, оны сыртқы программаға береді, одан кейін нәтижесін пайдаланушыға құрастырылған Web парақ арқылы қайтарады. Web парақтар бір – бірінен айрықша болуы мүмкін. Себебі олар пайдаланушы анықтаған параметрлерге байланысты қалыптасады.
CGI механизмі әмбебап болғандықтан ол кез келген WWW серверлер арасында деректерді алмастыра алады. CGI интерфейсі орындалатын файлдардан құралған соң, оған онда орындалатын программа түрлеріне шектеулер болмайды. Программа орындалатын модулдерді құралатын кез келген программа тілінде жазылуы мүмкін. CGI-программа Perl және Shell сияқты операциялық жүйелердің командалық тілдерін пайдалана отырып жазылуы мүмкін.
Қазіргі уақытта технологияда көбінесе белсенді серверлік парақтар ASP (Active Server Pages) технологиясы кеңінен қолдануда. Бұл технология CGI стандартын пайдалануын қарастырады. Бірақ, Web парақ құру мақсатында, объекті-бағытталған деңгейде ғана пайдаланады.
Әдебиет: 1нег.[20-26],2нег.[80-98],7қос.[100-117],9қос.[211-234].
Бақылау сұрақтары:
Қосымшаның өзара қатынас интерфейстері қалай орынлдалады?
Web-қосымша мысалында, өзара қатынас интерфейсінің негізгі құрамдастарын атаңыз?
CGI интерфейсі қандай қызмет атқарады?
13-ші дәріс. Программалық қосымшалардың ақпараттық өзара қатынас интерфейсі
HTTP мысалында программалық қосымшалардың өзара қатынас интерфейсі. Сұраныстар мен жауаптарды тасымалдануы.
HTTP мысалында программалық қосымшалардың өзара қатынас интерфейсін қарастырамыз. Интерфейс тізбектеліп орындалады.
Бірінші кезең - HTTP клиенті (броузер) сервермен қосылғанда. Бұл үшін ол TCP/IP протоколын қолданады және байланыс клиентке белгілі TCP портпен қосылады. Порттың қабылданған нөмірі – 80; басқа сервистерге басқа TCP – порттар белгіленген.
Екінші кезең - клиентің сұранысы болып табылады: клиент сұраныстың тақырыбын жібереді (Request header) және мүмкін (әдісіне байланысты) сұраныс хабарламасының денесін де жіберуі мүмкін. Тақырыбында міндетті түрде тәсілі, URL және HTTP версиясы көрсетіледі. Ол жерде тағы да міндетті емес жолдар бар болуы мүмкін, олар да серверге сұраныс қалай өңделіп отырғаны туралы ақпарат береді.
Үшінші кезең - сервердің жауабы, ол тақырыптан (Response header) тұрады. Ол жерде сервер НТТР версиясын және статус кодын көрсетеді. Ол нәтиженің дұрыс немесе дұрыс еместігін және оның себебін көрсетеді. Тақырыптан кейін, бос жолмен бөлінген жауаптың денесі келеді.
Төртінші кезең - ТСР/ІР қосындысының бүлінуі.
Request header мына түрінде болуы мүмкін:
GET /MyDoc.htm HTTP/1.1
Connection: Keep-Alive
User-Agent: Mozilla/3.0 (Win95; I)
Host: 212.54.196.226
Accept: image/gif, image/x-bitmap,
image/jpeg, *.*
Мұнда:MyDoc.htm - сұраныс құжатының аты; GET- сұраныстың түрі; Host-IP-мекен-жайы; Accept-клиенттің деректер форматы.
Request header алынған құжатының түрі:
POST /Scripts/ReadData.pl HTTP/1.1
Referer: http://212.54.196.226
Connection: Keep Alive
User-Agent: Mozilla/3.0 (Win95; I)
Host: 212.54.196.226
Accept: image/gif, image/x-bitmap,
image/jpeg, *.*
Content-type: application/x-www-form-urlencoded
Content-length: 38
FirstName=Mary+Ann&LastName=Sylvester
Мұнда: POST - формадан берілетін деректердің тасымалдау әдісі. Referer- web- парақтың мекен-жайы, бұл жерден пайдаланушы басқа құжат түріне ауысады; Content-type-берілетін деректердің кодттау тәсілі; Content-length - берілетін деректер саны (байт). FirstName, LastName - форма өрісінің атауы; Mary+Ann, Sylvester – берілетін мәндер (бос орын ”+”таңбасымен ауыстырылған).
Web-сервер броузердің сұранысына жауап береді,оған HTML-құжатын жібереді, Response header осыған қарайды.
Response header құрамында келесі деректер бар:
HTTP/1.1 200 OK
Server: Microsoft-IIS/4.0
Date: Tue, 04 Apr 2005 00:26:34 GMT
Content-type: text/html
Set-Cookie: ASPSESSIONIDFFFYXKFR=ACMNFLJANKGBAMPBEGNGLEAB
<HTML>
{ HTML - код }
Бұл тақырып сервермен құрылған.”200OK”жолы-бұл сұраныс статусы. Егер де сервер сұранысты өңдей алмаса, онда ол қате шықты деген хабарлама шығаратын еді, мысалы”404 Object Not Found”; Content-type-құрамының типі(түрі). Броузер құжатты көрсетеді (оның кодын HTML-коды ретінде интерпретациялайды, өйткені Content- type мәні text/html ие) және қашан клиент (гиперсілтемеге баса) осы сайттың келесі бетіне сұраныс беруін күтеді немесе басқа сайтқа көшеді. Егер бетте бейне болса (мысалы,jpeg форматында), онда ол web-сервермен клиентке басқа Response header-мен жіберіледі, мұнда Content-type, image/jpeg мағнасында болады. Set-Cookie - клиент компьютеріне арнайы ақпарат мәнін орнатады. Бұл өрісте жүріп жатқан жұмыстың идентификаторы сақталады.
Мысал қарастыралық және клиенттің HTTP сұранысын кеңінен қарастыралық.Ол былай болуы мүмкін:
POST http: //localhost/ HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
Accept-Language: ru
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)
Host: localhost
Proxy-Connection: Keep-Alive
paraml=l¶m2=2
Мысалдан сұраныстың “POST” сөзінен басталатыны көрінеді. Бұл сөз серверге берілетін деректердің әдісін көрсетеді. Мұнда сұраныстың қосымша деректері (“param1=1¶m2=2”) тақырыптан кейін беріледі.
HTML құжаттарында деректерді жіберу әдістері хабарлама жіберу формасында көрсетіледі. Мысалы,мына сұраныс алыну үшін,келесі форма қолданылды:
<form action="http://localhost/" method="post">
<input type=hidden name="param1" value="1">
<input type=hidden name="param2" value="2">
<input type=submit></form>
Мысалдан көретініміз, параметр мына түрде жазылады
[1-ші параметр аты]=[ 1-ші параметр мәні]& [2-ші параметр аты]=[ 2-ші параметр мағынасы]&…
”Get” сұраныс әдісі жиі қолданылады. Сұраныстардың көпшілігі, деректерді жіберуді керек етпейтін - мысалы парақ сұранысы, осы әдіспен жүргізіледі. Сұраныс формасын өзгертейік:
<form action="http://localhost/" method="get"> <input type=hidden name="param1" value="1">
<input type=hidden name="param2" value="2">
<input type=submit></form>
получим следующий HTTP запрос:
GET http://localhost/?param1=1¶m2=2 HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
Accept-Language: ru
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)
Host: localhost
Proxy-Connection: Keep-Alive
Көрініп тұрғандай “param1=1¶m2=2” жолы үстіге ауысады да “?” белгіден кейін, “http://localhost/” жолына қосылды. Сонымен қатар HTTP тақырыбында бірінші сөз өзгерді, қалғаны өзгеріссіз қалды.
GET әдісінің ерекшілігі мынадай: броузер жолынан қандай құжат жіберілген көрінеді. Кемшілігіне: мұндай тәсілмен (POST әдісіне қарағанда) жіберілетін деректердің ұзындығы шектелген – кейбір серверлер, кейбір броузерлер сияқты сұраныс құжатының мекен-жай ұзындығына шектеуі бар. Сәйкесінше, сұраныс жолы ұзын мекен-жай, қысқартылып тасталуы мүмкін немесе сервер қате “414 Request-URI Too Long” бар деп шығарады.
Әдебиет: 1нег.[20-26],2нег.[80-98],7қос.[100-117],9қос.[211-234].
Бақылау сұрақтары:
НТТР бойынша қосымшалардың өзара қатынас интерфейсі қанша кезеңнен тұрады?
НТТР бойынша қосымшалардың өзара қатынас интерфейсінде Request header тақырыбының мағынасы қандай?
НТТР бойынша қосымшалардың өзара қатынас интерфейсінде Response header тақырыбының мағынасы қандай?
Пайдаланушы интерфейсті орындайтын компонентер НТТР бойынша қосымшалардың өзара қатынас интерфейсімен қалай байланысады?
14-ші дәріс. Программалық қосымшалардың өзара қатынасының ақпараттық интерфейсін орындау.
Сервер мен сыртқы программаның өзара қатынас интерфейсі. Сервер мен сыртқы программаның өзара қатынас интерфейсінің (Common Gateway Interface) орындалуын қарастырайық.
Common Gateway Interface (CGI) ортасының айнымалысы.
Сервер CGI-скрипті (сыртқы программаны) қолданысқа жіберген уақытта қоршаған ортаны қалыптастырады. Онда скрипт HTTP-байланыстар жайында рұқсат етілген барлық ақпаратты, оған қоса сұраныммен алынған шамаларды анықтай алады. Көптеген CGI айнымалылар стандартталған. Ендігі жерде стандартты CGI ортаның айнымалыларын қарастырайық:
REQUEST_METHOD – HTTP сұраныстың әдісін анықтауға арналған басты жолдардың бірі. Жоғарыда айтылып өткендей серверге сұраныс жіберу үшін HTTP протоколы GET және POST әдістерін пайдаланады. Олардың айырмашылығы, GET әдісінде, сұраныс URL-дің бір бөлігі болып табылады (мысалы, http://www.localhost/myscript.cgi?а=request), ал POST әдісін қолданғанда деректер HTTP-шақырылу денесінде жіберіледі (GET әдісінде шақырылу денесі бос болады). Сәйкесінше, CGI үшін: GET әдісінде шақырылу QUERY_STRING айнымалысына барады, ал POST әдісінде скрипті стандартты түрде енгізетін STDIN-ге жіберіледі.
Мысалы: REQUEST_METHOD=GET
QUERY_STRING – GET әдісіндегі шақырылу жолы. Формадан жіберілетін шақырылу броузермен кодталады, себебі URL-де барлық символдар қолдана бермейді (олардың кейбірлері арнайы қолданады). Urlencode әдісі бойынша: URL-дегі барлық бос орын белгілері “+” таңбасына алмастырылады, ал барлық арнайы және баспаға түспейтін таңбалар %hh тізбегіне ауыстырылады, мұндағы hh-таңбаның он алтылық коды. Сонымен қатар, жолдарды бөлуші болып & белгісі табылады, сондықтан формаларды өңдеген уақытта декодтау жүргізу қажет.
Мысалы: QUERY_STRING=name=user+chef&age=20&hobby=games
CONTENT_LENGTH – байт бойынша алынған шақырылудың ұзындығы. POST әдісі бойынша шақырылу жүргізген кезде стандартты кіріс (STDIN) CONTENT_LENGTH жүргізу керек, содан соң оларды өңдеу керек. Әдетте POST әдісімен үлкен ауқымдағы мәтіндерді енгізетін формаларды жіберу тиімді. Осы әдісті қолданғанда ешқандай шектеу жоқ, ал GET әдісінде URL ұзындығы шектеулі.
Мысалы: CONTENT_LENGTH=31
CONTENT_TYPE – шақырылу денесінің түрі (жоғарыда кодталған формалардың түрі келесідей application/x-www-form-urlencoded анықталады).
GATEWAY_INTERFACE – CGI протоколының нұсқасы
Мысал: GATEWAY_INTERFACE=CGI/1.1
REMOTE_ADDR – аталмыш шақырылуды орындайтын, қашықтағы хостың ІР – мекен-жайы.
Мысалы: REMOTE_ADDR=139.142.24.157
REMOTE_HOST – бұл, егер шақырған хостың домендік есімі болса, онда ол айнымалыны қамтиды, қарсы жағдайда ол REMOTE_ADDR сияқты ІР – мекен-жай.
Мысалы: REMOTE_HOST=idsoftware.com
SCRIPT_NAME – шақырылуда қолданған скрипттің есімі. Сервердегі нақты жолды алу үшін SCRIPT_FILENAME айнымалысы қолданады.
Мысалы: SCRIPT_NAME=/cgi/guestbook.cgi
SCRIPT_FILENAME – бұл сервердегі файл скриптінің есімі. Осы айнымалыны қолдана отырып, файлға физикалық жолды табады.
Мысалы: SCRIPT_FILENAME=/home/public/cgi/guestbook.cgi
SERVER_NAME – сервердің көп жағдайда домендік есімі (www.microsoft.com сияқты), алайда ол IP-мекен-жай болуы да мүмкін (мысалы, 157.151.74.254 түрдегі).
Мысалы: SERVER_NAME=www.tksite.edu
SERVER_PORT – сервердің ТСР-порты, ол байланыс жасау үшін пайдаланады. Келісім бойынша HTTP-порттың нөмірі 80, алайда кейбір жағдайда ол басқа болуы мүмкін.
Мысалы: SERVER_PORT=80
SERVER_PROTOCOL – сервер протоколының нұсқасы
Мысалы: SERVER_PROTOCOL=HTTP/1.1
SERVER_SOFTWARE – сервердің программалық қамтамасы
Мысалы: Apache/1.0
Клиент пен сервер арасындағы өзара қатынас жайлы негізгі ақпарат қоршаған ортаның стандартты айнымалылары арқылы алынады. CGI-сценариін іске қосқан сайын ол бірінші рет жұмыс жасағандай күй кешеді. Әрбір рет инициализация процедурасы басынан бастап жүзеге асады. Кіріс деректерді оқудан бұрын қоршаған орта айнымалысының REQUEST_METHOD мәнін анықтау керек және ол қандай ақпарат қамтиды get немесе post? Содан кейінгі әрекеттер осы мәнге байланысты өзгеріп отырады.
Кіріс деректерді өңдеу нақты бір жолды жазу мақсатына байланысты. Жалпы жағдайда деректерді өңдеу ол түрлендіру деп саналады.
GET әдісі үшін кіріс деректерін өңдеу.
GET әдісі үшін кіріс деректерді өңдеудің алгоритмі келесі қадамдар бойынша жүзеге асады:
QUERY_STRING айнымалысының мәнін анықтау
Есімдер мен олардың мәндерін декодтау. Және де бос орын белгілері “+” белгісіне, ондық кодтар 128-н асатын белгілер “%” белгісіне алмастырылады. Ал олардан кейінгілер он алтылық кодпен алмастырылады.
“Есім-мән” құрылымын қалыптастыру.
GET әдісінде программаға деректерді жіберу айнымалы ортаға байланысты орындалады. QUERY_STRING айнымалысына келесі форматтағы жолдардың мәні келіп түседі:
“Есім1=Мәні1&Есім2=Мәні2&Есім3=Мәні3...&ЕсімN=МәніN”
Мұндағы есімN – NAME атрибутының мәні, ол форманың басқару элементінің есімін береді. МәніN орнына сервер Value атрибутының мәнін жазады.Оны пайдаланушы есімN элементінде енгізген. QUERY_STRING жолын программалау тілінің қарапайым функциялары арқылы өңдейді. Бірақ оны қайта өңдеуге тиым салынады. Бұл жол URL-кодтауды қолданады.
Кіріс деректерді декодтаудан кейін, жол массивінде барлық есім=мән жұбы сақталады. Бұл массивті пайдаланушы есептің қойылу шартына байланысты әр түрлі пайдаланады.
POST әдісі үшін кіріс деректерді өңдеу
Кіріс деректерді POST әдісі бойынша өңдеудің алгоритмі келесі қадамдардан тұрады:
CONTENT_LENGTH айнымалысының мәнін анықтау.
2. Есімдер мен олардың мәндерін декодтау. Және де бос орын белгілері “+” белгісіне, ондық коды 128-н асатын белгілер “%” белгісіне алмастырылады. Ал олардан кейінгілер он алтылық кодпен алмастырылатыны ескеріледі.
3. “Есім-мән” құрылымын қалыптастыру.
STDIN ағымынан деректерді оқу керек. Егер CONTENT_TYPE қоршаған орта айнымалысының құрамында application/x-www-form-urlcoded мәні болса, онда STDIN ағымындағы деректерді де декодтау керек.
POST әдісі бойынша кіріс деректер stdin стандартты ағымы арқылы жүзеге асады. STDIN ағымы бойынша кірген деректердің байт бойынша көлемі CONTENT_LENGTH айнымалысында көрсетіледі.
Сыртқы программа мен сервердің өзара қатынас интерфейсін қарастырамыз.
Пайдаланушыларға деректер енгізу
Пайдаланушыдан берген кіріс деректердің енгізу әдісіне қарамай, CGI программа өзінің шешімін STDOUT стандартты ағымына жібереді. Бұл шешім HTML-құжат түрінде немесе сервердің ережелері түрінде болады, мұнда қажетті ақпаратты алуға болады. Соңғы әдістің басымдығы мынада: cgi-модуль әрбір шақырылым үшін толық HTTP тақырыбын жасауға міндетті емес.
Сценариді шығару тақырыбы.
Әдетте, сценариді шығару сервермен жүзеге асады және пайдаланушыға жіберіледі. Торап арқылы жіберілген файлдың түрі жайлы ақпаратты броузер тіркейді және ол файлдан бұрын жетеді. Сервер тақырыпты құра алмағандықтан, сценаридің өзі сәйкес тақырыпты жіберуді қамтамасыз етуі тиіс. Осыған орай, деректерді өңдеуден бөлек, сценарий шығу ағымына түзу қатесіз жазылған мәтінді жіберу керек. Ол мәтін жолдардан және жауап өрістерден: жалпы тақырыбы (General-Header) және хабарлама денесінің тақырыбынан (Entity-Header) , сонымен қатар жауаптар тақырыбынан (Response-Header) тұрады.
Шығарылу кіші тақырыптан басталады. Ол HTTP тақырыбы форматындағыдай мәтіндік жолдардан тұрады және бос жолмен (жолды ауыстыру символынан тұрады) аяқталады. Мәтіннің кез-келген жолы, егер ол сервердің директивасы болмаса, тікелей қолданушыға жіберіледі. Қазіргі уақытта CGI торабы сервердің үш директивасын қарастырады:
-
Есімі
Анықтама беру
Content-type
Қайтарылған құжаттың MIME-түрі
Location
Серверге құжаттың өзі емес, құжатқа сілтеме жіберіледі. Осы кезде сервер пайдаланушыға шақырылуды қайта жіберуді сұрайды.
Status
Серверге HTTP жол-статус береді, ол пайдаланушыға жіберіледі. Формат: nnn xxxxx, мұнда nnn-үш санды статус-код және ххххх-себеп жолы
Қызықты ақпарат жағдай жолында болады. Жағдай жолы келесідей форматта болады: HTTP/version - версия, Status-Code – нәтижені идентификациялайтын статустың үш орынды коды және Status-Phrase – кодты түсіндіретін мәтіндік тұжырым. Статус коды броузермен пайдаланылады, ал мәтіндік тұжырым пайдаланушыға арналған.
Статус кодының бірінші саны жауаптың класын анықтауға арналған.
Кодтың бірінші санымен анықталатын бес санат бар:
1хх: әзірге қолданыста жоқ, болашақта қолдануға сақталынуда.
2хх: сәтті жол: шақырылу қабылданды және ол өңделуде.
3хх: қайта жіберу – қолданушы шақырылуды қайта жасауы тиіс.
4хх: пайдаланушының қателігі – шақырылу дұрыс өңделмеді. Егер қолданушы өзінің шақырылуын 4хх кодасы бар жауап келгенге дейін тоқтатпаса, онда ол серверге дерек жіберуді тоқтатуы керек
5хх: Web-сервердің қателігі – дұрыс жасалған шақырылуға жауап бере алмады.
Келесі кестеде HTTP-дің жауап кодтары келтірілген:
-
Статус коды
Мағынасы
200
ок
201
Post сәтті команда
202
Шақырылу қабылданды
203
Get немесе HEAD шақырылу орындалды
204
Шақырылу орындалды, бірақ ішіндегісі жоқ
300
Ресурс бірнеше жерден табылды
301
Ресурс мүлдем жойылған
302
Ресурс уақытша орнында жоқ
304
шақырылу өзгертілінген
400
Пайдаланушыдан шақырылу нашар
401
Анықталмаған шақырылу
402
Ресурс төлемін төлеу қажет
403
Пайдалануға рұқсат жоқ
404
Ресурс табылмады
405
Аталмыш ресурс үшін бұл әдіс қолданылмайды
406
Ресурстың бұл түріне рұқсат жоқ
410
Ресурсқа рұқсат жоқ
500
Сервердің ішкі қатесі
501
Әдіс орындалған жоқ
502
Сценарий бұзылған немесе сервердің жүктемесі көп болып кеткен
503
Серверге рұқсат жоқ/сценаридің тайм-ауты
504
Екінші сценарий/ сервердің тайм-ауты
Status директивасы CGI-сценариге өңдеу жағдайы туралы хабарламаны қайтаруға мүмкіндік береді. Егер бұл директива берілмеген болса, онда сервер 200 Ok көрсетеді.
Мысалы:
Status: 404 Not found
Сервер осы ақпарат негізінде тақырыпты негіздейді. Оны пайдаланушыға жібереді.. Мысалы, директивтер жиыны:
НТТР/1.0 200 ОК
Server: NCSA/1.0a6
Content-type: text/html
шақырылудың ойдағыдай орындалғанын хабарлайды.
Мұнда: 200 - код шақырылудың ойдағыдай орындалғанын білдіретін, “Ok” соны білдіреді.
Келесі директива: Content-type: text/html
егер жауап денесі бар болса, міндетті түрде орын алады. Ол серверге ары қарай HTML-құжат болатынын хабарлайды.
Ал директива:
