- •Интернет-технологиялар негіздері.
- •Интернет коммуникациясының моделі. Коммуникацияның Pull- және Push-моделі. Интернет сервисінің коммуникациялық мінездемелері (сипаттамалары).
- •Кесте 2.1 - Internet сервисінің коммуникативті сипаттамасы
- •Қолданушының Интернетке кіруі. Коммутация каналының желісі. Модем.
- •Интернет жүйесіне қатынасу технологиялары. Dsl, isdn технологиялары.
- •Интернеттегі web серверлер. Web – сервер жұмысының механизмі. Статистикалық және динамикалық беттер. Cgi технологиясы. Скриптер.
- •Интернеттің іздеу технологиялары.
- •Интернет сервистері. Электрондық пошта.
- •Интернет сервисі. Файлдармен алмасу. Ftp сервисінің жұмыс механизмі. Ftp – клиенттер.
- •Интернеттегі мәліметтерді қорғау. Цифрлық қолтаңба. Криптография және Интернет. Симметриялық және асимметриялық кілттер. Цифрлық қолтаңбаның механизмі. Қауіпсіздік проблемалары.
- •Интернетте пайдаланушыларды идентификациялау. Cookies механизмі. Cookies-ті қолдану. Cookies негізіндегі технологиялардың кемшіліктері мен артықшылықтары.
- •Интернет қосымшаларын құру технологиялары.
- •Интернетті құрудың технологиясына жасалған ұсыныстар. Клиент машинасы үшін бағдарламалық нұсқаулықтар.
- •Интернет-технологиялар дамуының болашағы.
Интернетті құрудың технологиясына жасалған ұсыныстар. Клиент машинасы үшін бағдарламалық нұсқаулықтар.
JavaScript. VBScript. Java.
JavaScript
Web, гипермәтін жүйесі, екі жақты қарастырылады. Біріншіден, гипермәтіннің өтуіне байланысты бейнелену. Екіншіден, беттердегі бейнелену (мәтін, сызба, мобилді код және т.б.) көптеген ақпаратты нысандарды құрайды. Ең соңғы жағдайда гипермәтіннің өтуі – бұл суретті мәтін жөніндегі ақпаратты фрагмент.
Көптеген ақпаратты нысандар HTML – беттермен гипермәтін жүйесінің ролін атқарады. Осы жол «беттер» дайын компоненттерден алынған бейнелеу жолы тиімді болып табылады.
Web дилемма «клиент – сервер» сәулетпен байланысты беттердің бастысы. Беттердің клиент әрі сервер жағынан бастысы болып табылады. Ең соңғысы сервер жағынан (Server Site Includes). Netscape компаниясы 1995 жылы клиентті және беттерді басқару механизмнде JavaScript бағдарламасын дайындады.
Сонымен, JavaScript – Web гипермәтін бетіндегі клиент жағының басқару сценариін көрсетеді. Егер дәлме – дәл JavaScript – клиент жағының ғана бағдарламасы емес. Liveware JavaScript өтпелі Netscape қойылымының құралы болып табылады. Алайда, JavaScript ең кең таралғаны клиент жағындағы бағдарламаны қамтамасыз ету.
JavaScript мүмкіндігіне, мысалы келесі жатады:
өзгерген мәліметтерді бейнелеу, уақыты немесе күні;
күніне байланысты ауыспалы мазмұнды бағдарлама браузер қолданысындағы немесе басқа жағдайлардағы;
беттің түрін өзгерту, егер қолданушы тышқанды басса немесе бағыттағышты элементтен өткізсе.
JavaScript үлкен деңгейлі тілде күшті мүмкіндігі бар. Ол машиналы код сияқты қызмет атқармаса да браузерлерге шығуға мұмкіндік береді, Web – бет, кейбірде жүйеге шығасыз. Javaтм немесе С – ден айырмашылығы, JavaScript компиляциясыз бағдарлама, ал бағдарламалық кодты орындау үшін виртуалды машинаны браузердің жүктемелеуіне әсер етеді. JavaScript Javaтм немесе С++ еске түсіруші сәулет нысанында жұмыс атқарады. Тілдің осындай мүмкіндіктері конструкторлар сияқты сызбаны жасауға жаңа деңгейлі абстракциялар, яғни бірнеше рет қолданылатын бағдарламалық кодты жасауға мүмкіндік береді. Web жасаушылар JavaScript клиент жағынан бұрынғы сервер жағынан орындалатын функцияларды атқарады. Ең жақсысы – форманы тексеру. Бағдарламашылар HTML –ді енгізгенде Web – сервер және CGI сценарийне ақпаратты жіберетін, ондағы енгізілген мәліметтер тексерілетін.
Егер мәліметтер қате болмаса, онда CGI сценарийі жұмысын жалғастырады. Бірақ қате табылғанда қолданушы хабарламаны қайталап алатын. Сонда артық жұмыстар атқарылатын. Форманы жіберу үшін HTTP – дің серверінен арнаулы тапсырыс қажет. Мәліметтерді жіберген соң қайтадан CGI сценарийн орындауға тура келеді. Осы процесс қайталанып отырады, өйткені қолданушы қате жібереді. Қолданушы қателескенін хабарлама қайтып келгенде біледі.
Сценада JavaScript көрінеді. Web – серверге қолданушы хабар жібермес бұрын форма элементтерін тексеру қажет. HTTP санын азайтуға себепші болады, форманы қайта толтырғанда қатенің азаюына себепші болады. Сондай – ақ JavaScript cookie – ді оқуға және жазуға мүмкіндік береді – бұл операцияға Web – сервер құралдарымен тақырып жазу үшін қолданалады.
VB Script
JavaScript Microsoft шығысымен Visual Basic кең тараған тіл бағдарламасы ілгеріледі. VBScript те JavaScript жасағанды жасайды, бірақ бағдарламалық коды Visual Basic – ке ұқсайды.
Visual Basic Script – Visual Basic бағдарламасының тілімен ұқсас. Visual Basic Script интернетке байланыстыларды шешеді, нысандарды (батырмалар, тізімдер, меню т.б.) басқаруды Web – беттерінде атқарады. Visual Basic Script көмегімен тездетіп беттер ашып немесе ойындар құрауға болады. HTML құжаты ішінде орналасады.
Visual Basic Script ерекшеліктері.
Visual Basic Script JavaScript – тан айырмашылығы мыналар:
оператордан кейін нүкте, үтір қойылмайды;
теңдік белгісі ауысқанда, сондай – ақ теңдестіру операциясын жасағанда қолданылады;
операторлар блоктары фигуралы жақшалармен ерекшеленеді, if … end if, do … loop, while … wend сөздермен.
Сондай – ақ JavaScript ауыспалы түрде қолданылады, мәтін арқылы айыруға болады. Visual Basic Script Visual Basic функциясын атқарады.
Негізгі кемшілігі Internet Explorer ғана оны қолдайды. Сол себепті Visual Basic Script бағдарламасы үшін клиент жағынан шектелген.
Java
Java – ны құру – соңғы жылдары алға шыққан озық бағдарлама. HTML тілі «Дүниежүзілік тор» WWW (World Wide Web) беттеріне орналасу үшін қажет, сапалы алға ұмтылуға қажет, яғни интернетке шығуға.
Үш элемент бірігіп Java тілін құрайды және бүгінгі күні озық технологияның қатарында келеді. Java өз апплеттерін кеңінен қолдану үшін платформадан ауытқылайтын белсенді жүйесі Web – тің беттеріне қатарласып келеді. Java апплеттері HTML құжаттары сияқты тұтынушылар арқылы жеңіл тарайды. Java жұмысты жеңілдетеді, жұмысты істеуге ыңғайлы. Бұл бағдарлама жасаушыларға жаңа бағдарламалар мен жаңа апплеттер шығаруға оңтайлы жағдайлар туғызады.
Java бағдарламашыға көптеген функцияларды атқаруға, терезелерді қолдануға, жүйелі нысандар құруға, ендіруге – шығаруға көмектеседі. Бұл кластар қолданып жүрген жүйеден интерфейстер жүйесінің спектрін кеңінен қолдануға әсер етеді.
Java тілі (ОБ) озық бағдарлама жасауға арналған, озық бағдарлама тұрмыстық әртүрлі аспаптар үшін қажет. Бұл бағдарлама C++ - тен басталған, бірақ тіл бағдарламасына өзгертулер енгізілді, платформалық тіл бағдарламасы тәуелсіз, әртүрлі операциялық жүйелерде әртүрлі процессорларда қолданылады.
Java апплеті.
Апплет – бұл шағын бағдарлама, жүйеде дыбыстық файл немесе мультипликация элементін атқарады. Мультифильмдерді сақтау үшін немесе ақпараттарды сақтауға арналған нағыз бағдарлама.
Web – беттері Java тілін динамикалық бейнелеу мен Web клиенттерімен қарым – қатынаста болу үшін қолданады, басқа технологиялармен салыстырылады.
Java – ны жасаушылар басынан бастап оның тілі гетерогенді құралдардың мәселелерін шешуге арналғандығын білді
Java – ны білуге асығу керек, бұл бағдарламаны жасағандар анық, әрі жеңіл жолды пайдаланған.
Java нысандарды қабылдап – жөнелтуге БО қазіргі әдістемелік жолын және клиент – серверлік жолын оңай тәсілмен қолдануға бейімделген.
Бір уақытта көп материалды лек – легімен орындауды қамтамасыз етеді (мысалы, мультимедиалық жүйелерді)
Көшірмелік, жазулық жүйелерін де көптен орындайды.
Тілі – қауіпсіз, сенімді, белсенді, сәулет тәуелсіздігін сақтайды, өндірістік қажеттілікті орындайды, оқып – үйренуге жеңіл. Нысанды – көздемелі бағдарламалық негізгі танымды игерсеңіз, Java бағдарламасын да тез үйренесіз. Javaның көп кітапханалық қоры бар. Егер интернетке ену үшін қауіпсіздік қажет болса, онда Java тілі керексіздерді іріктейді, қорғаныс қызметін де атқарады, басқа тілге қауіпсіз варианттарды таңдайды. Java мәліметтердің бәрін орындайды. Қателермен де жұмыс істейді. Есте сақтайтын материалдары да ауқымды. Есте сақталмайтындарды алып тастап, сараптайды, нысанды көздеу құралдарын пайдаланады.
Java бағдарламасының бастапқы кезеңінде қателіктер табылған және бірнеше шешулі салаларда бізді шектейді. Сонда да, оның қателіктер көзі жоқ, басқа бағдарлама тілімен байланысты (қатаң типтестігі, мысалы). Көбінесе қолданыстағы бағдарлама «бас тартады», яғни мынандай жағдайда: есте сақтауды белгілегенде, шығарып тастау мүмкіндігі болған жағдайда. Java осы екі мәселені босаған еске сақтау үшін қоқысты жинауды қолдана отырып және шығу жағдайы үшін жан – жақты нысанды – бейнелеу құралын алып тастайды.
Java интерактивті жүйені қанағаттандырады. Код жазады, бір уақытта бірнеше жұмыстарды атқарғанда, атқарылған жұмыстарды жүйеге келтіреді. Интерактивті жүйенің тиімді әдістерін қолданады. Javaны құрастырушылар қатаң талаптар қоя білген – барлық салада, әр кезде қолдана алу тәсілі бағдарламаға ендірілген.
Java – ны құрағандар тілге және бірнеше қатаң талаптарды орындау уақыттарына, сөз күйінде емес бағдарламаның кез келген орнына әмбе уақытына бір кезде жазды (виртуалды Java – машина кездескенде – барлық платформалардың браузерлерінде, OS/2, Netware).
Кәдімгі емес Java өз кодын орындайды, ұстанымды платформа бағдарламасы аралық қатынасты байт – кодтың (bytecode) қызметін атқарады. Байт – код кез келген жүйеде ығыстырады, Java атқаратынды орындайды. Ертелік жүйе көбінесе платформаға тәуелсіз қызметтерді қамтамасыз етеді, өндіріс кемістігі едәуір (Basic, Perl) меңгереді. Java орындайтын жұмыстарға байт – код ендірілген. Байт – код машина кодына (Just In Time compilers) ауыстырылған. Жұмыс атқару қарқыны өте жоғарылайды (Symantec JIT Netscape Navigator).
Java тілі командалық интерпретаторлардан күрделі, ал меңгеруге оңтайлы, басқа бағдарламалық тілге қарағанда, мысалы C++.
Java ортасы – кеңірек бағдарлама тіліне қарағанда нағыз бейбіт ең қажетті абстракцияларды құрайды, өз бағдарламаңыздағы қолданылатын жәйттерге түрткі болады. Java негізгі кең таралған абстракциялар класын құрайды, оның тілін жасаған, шын мәнінде платформаға тәуелсіз.
Әдебиет: 7 нег. [144 - 183], 10 нег. [31 - 70].
Бақылау сұрақтары:
1 Клиент машинасы үшін интернетті құрудың ерекшеліктері неде?
2 JavaScript технологияларының ерекшеліктері неде?
3 Visual Basic Script технологияларының ерекшеліктері неде?
4 Java технологияларының ерекшеліктері неде?
Дәріс 14.
Интернет қосымшаларын құру технологиясы.
Серверге программалық құралдары.
«Клиент-сервер» технологиясындағы программалау.
ISAPI, CGI спецификациясы
Серверді программалау тілдері.
Сценарилар көмегімен серверде сақталған мәліметтер базасына және басқа да ресурстарға файлға кіруге, рұқсат алуға болады, және де сервердің орталықтандырылған ресурстарына, электрондық почта, факс қызметі сияқты.
Серверде орындалатын сценарилердің тағы бір артықшылығы болып, қарсылық тудырмайтын және басқарылатын ортаның функциялануы сіздің кодыңыз көп нұсқалы браузер емес, ал бір нұсқалы серверде орындалады.
Бірақ сервер жағындағы сценариларды қолдану кезінде 3 негізгі кедергі бар:
-Сервердегі скрипті енгізу web мастерден жүйелік администратордан арнайы рұқсат алуды талап етеді;
-Серверде орындалатын сценарилармен өзара қарым қатынастар болу үшін қолданушы тышқанмен ссылкіде немесе беттегі кнопканы шерту керек, содан кейін сценариді орындағанын және жауап қайтаруын күтеді. Динамикалық HTML мен қарым – қатынасты қоданумен тез орындалады;
-Сценариді тестілеу үшін серверге өз арнайы www сервері болуы керек, типі өндірістік нұсқа түрінде болуы жөн;
Кең спектрлі тапсырманы шешу үшін қазіргі уақытта ең негізгі шарт болып сервер жағындағы пограммалау болып табылады. Ол рұқсат етеді:
-Пішін көмегімен қолданушымен енгізілген сервердегі мәліметтерді алу және өңдеу;
-Платформаға, браузер клиентке тәуелсіз динамикалық web документтер құру;
-Мәліметтер базасының серверінің, яғни серверде орналасқан мәліметтерге динамикалық доступпен қамтамасыз ету (Мұндай доступ тәсілінде серверде сақталған мәліметтер өзгерген кезде HTML документі автоматты түрде өзгереді);
-Типтік тапсырмаларды орындауға арналған сервердің компоненттерді қолдану (Мысалғы, мынадай жарнамалық баннерлердің циклдік ауысуы және т.б.)
-Қолданушының аутентификациясын жүзеге асыру;
-Клиенттің браузері жөнінде мәліметтер алу;
-Клиенттің жағынан кілттерді құрастыру және оқу;
«Клиент-сервер» технологиясы
Көптеген Word wide web қосымшалары web серверімен басқарылатын ішкі программаларды қолдануңа негізделген. Берілген программаларды қолдану динамикалық жаңару мәліметтерімен web қосымшасын құруға мүмкіндік береді. Мәліметтер базасында сақталған немесе шешілетін тапсырмалардың бизнес ережелеріне бағынышты генерилданатын. Web серверімен және шақырылатын программалар арасындағы байланыс үшін CGI кеңінен қолданылады, windows программасы үшін сондай-ақ Unix ортасындағы функционалданатын қосымшалардың нақтылығы бар. CGI, HTTP, Web сервер типтерінің ақпараттық серверімен ішкі қолданбалы программасының интерфейстің стандарты болып табылады. Әдетте, www серверінен гипертексті документтер статикалық мәліметтерден тұрады.
CGI-дің көмегімен CGI программаларын құруға болады, олар шлюз деп аталып қолданбалы жүйелер, мәліметтер базасын басқару жүйесі, электрондық кесте жұмыстық графика тағы да басқалардың қарым – қатынасы экранға қолданушының динамикалық ақпаратын шығара алады.
Шлюз программасы www серверінің нақты масштаб уақытында іске асырылады. www сервер қолданушының шлюз тапсырмасын қамтамасыз етеді, ал ол өз кезегінде қолданбалы жүйелік ортаны қолдана отырып, қолданушының экранына өңделген сұраныс нәтижесін қайтарады. Программа-шлюз C/C++, Fortran, Perl, TCL, Unix Schell, Visual Basic, Apple Script. тілдерінде кодталған болуы мүмкін. Ол әдетте, директорияда cgi-bin www сервер атымен орындалатын модуль сияқты болып жазылады. Бүкіл интернет және www-дің кейбір бөліктері «клиент-сервер» технологиясы бойынша жұмыс істейді, яғни барлық программалық қамтамасыздандыру клиенттік және серверлік бөліктерге бөлінеді. Сондай – ақ олардың арасында функцияналдық міндеттер ажыратылған.
Клиент жұмыстың принципінсервердің ішкі алгоритмдік іске асырылуын білмейді, білуі тиіс де емес, ал сервер клиенттің жұмыстарына араласпайды. Бұл бөліктердің ара қатынасы үшін арнайы протокол шығарылған (бұл жағдайда HTTP протоколы), және де сервермен клиент арасындағы қарым – қатынасты осы протокол ішінде іске асырылады. Браузерге бәрібір серверде қандай программалық қамтамасыздандыру тұрғаны, онда қандай операциялық жүйенің болуы, серверде сұраныс документтері қай жерде жатқаны (жалпы жатыр ма, олар арнайы программалармен лезде генералдануы мүмкін). Сервер сіздің браузеріңіздің жұмысына араласпайды, клиент берілген ақпаратпен не істейді, қалай көрсетеді, дискі де сақтайды ма, әлде сақтамайды ма серверге бәрібір. Әдетте, серверге сұраныстан деп түсіндіріледі (бұл сервердегі мәліметтердің унифицилданған тапсырыстың пішіні).
Сервермен байланысты орнату кезінде алдымен www IP адресіндегі www.siemens.com секілді символдық аттардың трансляциясы болады, ал кейін TCP/IP - IP мәліметтерімен қосылуы іске асырылады. Серверге HTTP мәліметтеріне сұранысы жіберілген кезде клиент жауап келгенін күтеді. Клиенттен сұраныс болғанша HTTP сервері сұранысты күтіп, «ұйықтап жатады». Клиент байланыс орнатқан кезде сервер «оянады» және бірілген сұранысты қабылдап, оларды өңдеуге кіріседі. Сервердің сұранысымен не істейтіні-сервердің өзіне ғана белгілі. Барлық монупуляциялардың жалғыз нәтижесі-ол клиенттің күтіп отырған жауабы болып табылады. Сервер жауап қайтарғаннан кейін ол байланысты үзіп қайтадан «ұйқыға түседі» және қателік шыққан кезде HTTP транзакциясы әр аптада аяқталуы мүмкін. Егер документтер табылмаған жағдайда немесе сізде оларға құқығыңыз болмаса (ресурсқа кіру шектеуші болуы мүмкін) немесе қателік коды беріледі. Ал егер барлығы дұрыс болса, документте сақталған ақпарат, типі жөніндегі мәліметтерді қоса отырып, жауап ретінде қайтарылып отырылады.
ISAPI
CGI секілді ISAPI спецификациясы web сервермен және қосымша программалармен арасындағы қарым қатынас ережелерін анықтайды. Серверде орындалатын программаны құру үшін альтернативтік тілтабысу неге керек екенін түсіну үшін, CGI стандартының артықшылықтары мен кемшіліктерін атап өтейік. CGI-дің сөзсіз артықшылығы болып оның универсалдылығы болып табылады. CGI әр тілде жазылуы және компьютерде әр түрлі архитектурада орындалуы мүмкін.
Егер сценариді жазған кезде барлық ережелерді ескерген болсаңыз, ол кезде сіздің құрған программаңыз кез-келген web серверімен дұрыс қарым қатынаста болатынына сенімді болуыңызға болады. CGF-дің қарапайымдылығы бұл стандарттың кең таралуына мүмкіндік береді. Бірақ бұл жетістіктермен қатар CGI сценариясында кейбір кемшіліктер де кездеседі.Олардың ең бастысы болып ресурстардың тиімсіз қолданылуы болып табылады. Сценариді шақыруды ұсынатын клиенттің әр сұранысы компьютер-серверде бөлек процесс туындатады. Процестің құрамындағы жұмысты орындауға қарағанда тәуелсіз процесті орындау көбірек ресурсты талап етеді.
Ресурстың өндірістігін жоғарлату және шығынды азайтуға ұмтылу корпоративтік шығуына әкеліп соқты. Ең атақтысы NSAPI және ISАPI болып табылады. NSAPI программасының CGI сценарисынан басты айырмашылығы болып, ISАPI программасының орындалмайтынын файлды емес динамикалық кітапхана (DDL) болып табылады. Осының арқасында программаны жеке процесс ретінде емес, ал web сервердің бір тұтас ағыны ретінде программаны іске қосу мүмкіндігі туды. Тәуелсіз поцесс жұмысын орындауға өарағанда тұтас ағын жұмысын орындауға аз ресурс жұмсалады. Тұтас ағын оның процесін туындатқан мекенжайлық кеңістікті қолданады және жеке процеске қарағанда тезірек жұмыс істейді. Процестің аяқталу кезінде жадыдан шығады, ал келесі сұраныс түскен кезде дискіге қайта жүктеледі. Бұл CGI-дің тиімді жұмыс істеуіне кері әсерін тигізеді. Сұраныстың қарқынды түсуі кезінде дискіні әрдайым ауыстыру қажеттілігі серверде қосымша жүк пайда болады.
CGI-сценариасына қарағанда ISАPI программасы жұмысын аяқтағаннан кейін жадыда резиденттік болып қалады және келесі сұраныстарды өңдеуде қолданылады. Бірақта ISАPI программасының артықшылығы кейде кемшіліктерге айналып кетеді. Егер CGI-сценариасының универсалдылығы үшін жеткіліксіз өндірістілікпен төлеу керек болса, ол кезде жоғары өндірістілік үшін ISАPI программасының негізін салушылар универсалдылығымен төлейді. ISАPI программасының негізін қалаушылардың тілдер арсеналы CGI-сценараисының негізін қалаушыларға қарағанда аз болып келеді. ISАPI программасында неғұрлым көп жазғысы келетін адамға С++-тан басқа амал жоқ. ISАPI программасының екінші кемшілігі біріншісіне қараңанда әлде қайда күрделірек. Берілген типтегі программа серверде туындалған тұтас ағын ретінде орындалады, ол сервердің мекен жайлық кеңістігін қоланады. Соған байланысты ISАPI программасының ұателігі авариалық аяқталуды ғана емес, сонымен қатар серверді істен шығаруы мүмкін. ISАPI спецификациясын қолданатын программалар екі категорияларға бөлінеді:
- Кеңейтілу. Функционалды түрде CGI-сценариасынан олардың айырмашылығы аз. CGI-сценариасы сияқты кеңейтілу web серверінде қосымша мүмкіндіктерді іске асырады, бірақ мүлде өзгеше құрылады. ISАPI кеңейтілуіне осы бөлім арналған;
- Фильтірлер. Бұл программаның өзгеше класы. Кеңейтілу web сервердің мүмкіндіктерін көбейтетін болса, фильтірлер оның жұмыс тәртібін қзгертеді. ISАPI кеңейтілуі оның жұмысы кезінде web серверімен байланысқан динамикалық кітапхананы (DDL) танытады.
ISАPI кеңейтілуі орындау кезінде негізі болып және берілген типтегі программаның CGI-сценариасынан айырмашылығын ажыратудың оңай тәсілі – кеңейтілудің шақыру процедурасын қарастыру және де жоғарыда көрсетілген функциялар мен параметрлердің міндеті боып табылады. Клиенттің сұранысы нақты URL программасын шақырған кезде ғана болатын кеңейтілуге қарағанда, ISАPI фильтірлері клиенттің серверге әр сұраныс жіберу кезінде басқара алады. web серверді іске қосқанда программалық-фильтір жадыда жүктеледі және сервердің жұмыс уақыты аяқталғанға дейін резидентті боып қалады.
Бақылау сұрақтары:
Сервер жағында орындалатын интернет қосымшаларын құрастыру кезіндегі ерекшеліктері қандай?
CGI технологиясының ерекшеліктері қандай?
ISАPI технологиясының ерекшеліктері қандай?
Сервер жағында орындалатын технологияның кемшіліктері мен артықшылықтары неде?
Дәріс 15.
