Кіріспе

Желілік байланыс әдісі, онда сұранымдар жариялаушы тарапынан жіберіледі. Push технологиясы, сондай-ақ серверлік итермелеу деп те аталады, бұл байланыс әдісі клиент емес, сервердің бастауымен жүзеге асырылады. Бұл тәсіл "тарту" әдісінен өзгеше, онда байланысты клиент бастайды. Push технологиясында клиенттер белгілі бір ақпарат немесе дерек түрлеріне қатысты өз қалауларын, әдетте жариялау-абонамент моделі арқылы білдіре алады. Осы модельде клиент серверде ұсынылған нақты ақпараттық каналдарға "абонаментке" жазылады. Бұл каналдарда жаңа мазмұн пайда болғанда сервер автоматты түрде осы ақпаратты тіркелген клиентке жібереді немесе "итереді". Кейбір жағдайларда, мысалы, кіріс HTTP сұрауларын шектеуші қауіпсіздік саясаты болғанда, push технологиясы кейде сауалдау деп аталатын техниканы қолдана отырып имитацияланады. Мұндай жағдайларда клиент автоматты жаңартуларды алу орнына, жаңа ақпарат бар-жоғын білу үшін сервермен белгілі бір интервалмен тексеріп отырады.

Жалпы қолдану

Синхронды конференциялар және жылдам хабар алмасу – түрткілі қызметтердің мысалдары. Чат хабарламалары және кейде файлдар хабарламалар қызметіне түскеннен кейін дереу пайдаланушыға жіберіледі. Орталықтандырылмаған, өзара байланысты бағдарламалар (мысалы, WASTE) және орталықтандырылған бағдарламалар (мысалы, IRC немесе XMPP) файлдарды түртуге мүмкіндік береді, яғни деректерді жіберуші бастайды, алушы емес. Электрондық пошта да түрту жүйесі болуы мүмкін: SMTP – түрту протоколы (Push e mail қараңыз). Дегенмен, соңғы қадам – пошта серверінен жеке компьютерге – әдетте POP3 немесе IMAP сияқты тарту протоколын пайдаланады. Қазіргі заманғы электрондық пошта клиенттері пошта серверін үнемі тексеріп, жаңа хабарларды жиі іздейді, осылайша бұл қадамды жылдам етіп көрсетеді. IMAP протоколы серверге жаңа хабарламалар келген кезде клиентке хабар беруге мүмкіндік беретін IDLE командасын қамтиды. Алғашқы танымал сымсыз түрту электрондық поштасы – BlackBerry болды. Тағы бір мысал – 1990 жылдары кеңінен таралған PointCast желісі. Ол жаңалықтар мен қор нарығының ақпаратын экран сақтағыш ретінде жеткізді. Netscape және Microsoft екеуі де шолушылар соғысының қақпасында арнаның анықтама форматы (CDF) арқылы түрту технологиясын өз бағдарламалық жасақтамаларына енгізді, бірақ ол кеңінен таралған жоқ. CDF жойылды және сол кездегі шолушылардан алынып тасталды, 2000 жылдары RSS (тартпалы жүйе) онымен алмастырылды. Түрту мүмкіндігі бар веб-қосымшаларының басқа да қолданылуларына бағдарламалық жасақтаманы жаңартуды тарату («түрту жаңартулары»), нарықтық деректерді тарату (қор тікелей трансляциясы), онлайн чат/хабар алмасу жүйелері (webchat), аукциондар, онлайн ставкалары және ойындар, спорттық нәтижелер, бақылау консольдары және сенсорлық желілерді бақылау кіреді.

Веб-желгіш

Интернет-инженерлік жұмыс тобының веб-өткізу ұсынысы – HTTP нұсқасы 2-ні пайдаланатын қарапайым протокол. Ол келіп түсетін қоңыраулар немесе хабарламалар сияқты дереу оқиғаларды уақтылы жеткізуге мүмкіндік береді. Протокол барлық дереу оқиғаларды бір сессияға біріктіріп, желілік және радио ресурстарын тиімді пайдалануды қамтамасыз етеді. Бір қызмет барлық оқиғаларды біріктіріп, оларды қосымшаларға келіп түскен кезде таратады. Бұл үшін тек бір сессия қажет, артық шығындардың қабаттасуынан сақтануға болады. Веб-хабарламалар W3C стандартының бір бөлігі болып табылады және пайдаланушыға хабарлау үшін API-ді анықтайды. Хабарлама веб-бет контексінен тыс, мысалы электрондық хат жеткізілген кездегі оқиға туралы пайдаланушыны ескертуге мүмкіндік береді. Бұл стандарттың бөлігі ретінде Push API Chrome, Firefox және Edge-те толыққанды жүзеге асырылды, ал 2023 жылдан бастап Safari-де жартылай жүзеге асырылды.

HTTP серверінің түртілуі

HTTP серверінің түртуі (HTTP ағыны деп те аталады) – веб-серверден веб-браузерге сұралмаған (асинхронды) деректерді жіберу механизмі. HTTP сервері түртуі бірнеше механизмдердің кез келгені арқылы жүзеге асырылуы мүмкін. HTML5 құрамында Web Socket API веб-сервер мен клиентке толық дуплекс TCP қосылысы арқылы байланысуға мүмкіндік береді. Әдетте, веб-сервер клиентке жауап деректері жіберілгеннен кейін қосылымды үзбейді. Веб-сервер қосылымды ашық қалдырады, сондықтан егер оқиға орын алса (мысалы, бір немесе бірнеше клиенттерге хабарлау қажет болатын ішкі деректердің өзгеруі), оны дереу жіберуге болады; әйтпесе, оқиға клиенттің келесі сұранысына дейін кезекте күтуі керек. Көптеген веб-серверлер бұл мүмкіндікті CGI арқылы ұсынады (мысалы, Apache HTTP серверіндегі Non Parsed Headers скрипттері). Бұл тәсілдің негізгі механизмі – бөлшектелген деректерді жіберу кодировкасы. Тағы бір механизм 1995 жылы Netscape ұсынған multipart/x аралас алмастыру деп аталатын арнайы MIME түрімен байланысты. Веб-браузерлер мұны сервер клиентке жаңа нұсқаны жіберген сайын өзгеретін құжат ретінде түсіндіреді. Ол әлі де Firefox, Opera және Safari қолдайды, бірақ Internet Explorer оны елемейді, ал Chrome тек ішінара қолдайды. Оны HTML құжаттарына, сондай-ақ веб-камералардағы кескіндерді ағынды түрде беру үшін де қолдануға болады. WHATWG Web Applications 1.0 ұсынысына клиентке мазмұн жіберу механизмі кіреді. 2006 жылдың 1 қыркүйегінде Opera веб-браузері осы жаңа тәжірибелік жүйені "Сервер жіберген оқиғалар" деп аталатын мүмкіндік арқылы іске қосты. Қазір ол HTML5 стандартының бөлігі болып табылады.

Пюшель

Бұл техникада сервер тұрақты HTTP қосылымдарын пайдаланып, жауапты мәңгі "ашық" қалдырады (яғни сервер жауапты ешқашан аяқтамайды), нәтижесінде браузер бастапқы бет жүктелуі аяқталғаннан кейін де "жүктелу" режимінде болып қалады. Содан кейін сервер бет мазмұнын жаңарту үшін JavaScript фрагменттерін үнемі жіберіп, деректерді жіберу мүмкіндігін қамтамасыз етеді. Осы техниканы қолдану арқылы клиентке сервермен байланысты ұстап тұру үшін Java апплеттері немесе басқа қосымшалар қажет емес; клиент сервер тарапынан жіберілген жаңа оқиғалар туралы автоматты түрде хабардар болады. Алайда, бұл әдістің бір кемшілігі – сервердің браузердің байланыс уақытын бақылау мүмкіндігінің болмауы. Егер браузерде уақыт шегі туындаса, бетті жаңарту қажет болады.

Ұзақ сайлау

Ұзақ сұрау салудың өзі нағыз итеру емес; ұзақ сұрау салу – дәстүрлі сұрау салу әдісінің бір түрі, бірақ ол нағыз итеру мүмкін емес жағдайларда, мысалы, кіріс HTTP сұрауларын қабылдамауды талап ететін қауіпсіздік саясаты бар сайттар сияқты, итеру механизмін имитациялауға мүмкіндік береді. Ұзақ сұрау салуда клиент серверден ақпарат алуды сұрайды, дәл қалай қалыпты сұрау салуда болады, бірақ сервер бірден жауап бермеуі мүмкін деген үмітпен. Егер серверде сұрау алынған кезде клиент үшін жаңа ақпарат болмаса, бос жауап жіберудің орнына сервер сұрауды ашық күйде ұстап, жауап ақпараты қолжетімді болуын күтеді. Жаңа ақпарат болғаннан кейін сервер клиентке HTTP жауабын жібереді, соның арқасында ашық HTTP сұрауы аяқталады. Серверден жауап алғаннан кейін клиент әдетте бірден тағы бір серверге сұрау жібереді. Осылайша, сұрау салу клиенттеріне тән, әдеттегі жауап берудің кешігу уақыты (ақпарат алғаш рет қолжетімді болғаннан бастап келесі клиент сұранысына дейінгі уақыт) болдырмайды. Мысалы, BOSH – бұл танымал, ұзақ өмір сүретін HTTP әдісі, ол тікелей қолдану қиын немесе мүмкін емес болған жағдайларда үздіксіз TCP қосылысына ұзақ сұрау салудың баламасы ретінде қолданылады (мысалы, веб-браузерде); сонымен қатар ол Apple компаниясының iCloud итеруін қолдау үшін пайдаланатын XMPP технологиясының негізі болып табылады.

Flash XML сокет релелері

Бұл техника, чат қолданбаларында қолданылатын, Adobe Flash фильміндегі бір пиксельдік XML Socket объектісін пайдаланады. JavaScript басқаруымен клиент сервердегі бір бағытты реле арқылы TCP қосылысын орнатады. Реле сервері бұл сокеттен ештеңе оқымайды; керісінше, ол клиентке бірден бірегей идентификатор жібереді. Содан кейін клиент осы идентификаторды қоса отырып, веб-серверге HTTP сұранысын жібереді. Веб-қосымша клиентке арналған хабарламаларды реле серверінің жергілікті интерфейсіне жібере алады, ол оларды Flash сокеті арқылы жеткізеді. Бұл тәсілдің артықшылығы – ол көптеген веб-қосымшаларға, соның ішінде чатқа тән оқу-жазу асимметриясын пайдаланады және осының нәтижесінде жоғары тиімділікке ие болады. Реле сервері шығатын сокеттерде деректерді қабылдамайтындықтан, шығатын TCP қосылымдарын үнемі тексерудің қажеті жоқ, бұл ондаған мың бір уақыттағы қосылымдарды ашық ұстауға мүмкіндік береді. Бұл модельде масштабтаудың лимиті – негізгі сервердің операциялық жүйесінің TCP стегі болып табылады.

Сенімді топтық деректерді жеткізу (RGDD)

Бұлттық есептеулер сияқты қызметтерде деректердің сенімділігі мен қолжетімділігін арттыру үшін олар әдетте бірнеше машинаға таратылады (көшіріледі). Мысалы, Hadoop Distributed File System (HDFS) сақталған кез келген объектінің 2 қосымша көшірмесін жасайды. RGDD бір объектіні бір орналасқан жерден көптеген жерлерге тиімді таратуға, сонымен қатар желідегі кез келген байланыс арқылы объектінің ең аз көшірмелерін (ең жақсы жағдайда тек біреуін) жіберу арқылы өткізу қабілетін үнемдеуге бағытталған. Мысалы, Datacast – жүйелі және құрылымдалған топологияға негізделген деректер орталықтары ішіндегі көптеген түйіндерге дерек жеткізу схемасы, ал DCCast – деректер орталықтары арасында дерек жеткізуге ұқсас тәсіл.

Push хабарламасы

Push хабарламасы – бұл серверден немесе қосымшадан пайдаланушы интерфейсіне, мысалы, мобильдік қосымшаларға немесе десктоптық қосымшаларға "жіберілетін" хабарлама. Apple 2009 жылы iPhone үшін push хабарламаларын енгізді, ал 2010 жылы Google «Google Cloud to Device Messaging» (кейіннен Google Cloud Messaging және Firebase Cloud Messaging) шығарды. 2015 жылдың қарашасында Microsoft Windows хабарламалар қызметінің Universal Windows Platform архитектурасын пайдалану үшін кеңейтілетінін, Windows 10, Windows 10 Mobile, Xbox және басқа қолдау көрсетілетін платформаларға жалпы API шақырулары мен POST сұраныстары арқылы push деректерін жіберуге мүмкіндік беретінін жариялады. Push хабарламалары негізінен екі түрге бөлінеді: жергілікті хабарламалар және қашықтықтан жіберілетін хабарламалар. Жергілікті хабарламалар үшін қосымша хабарламаны құрылғының операциялық жүйесімен келісімдестіреді. Ал қашықтықтан жіберілетін хабарламалар үшін қосымша өзі уақыт белгілейді, егер ол фоновые режимде үздіксіз жұмыс істей алса. Оқиғаның белгіленген уақыты келгенде немесе оқиғаның бағдарламаланған шарты орындалғанда, хабарлама қосымшаның пайдаланушы интерфейсінде көрсетіледі. Қашықтықтан жіберілетін хабарламаларды қашық сервер басқарады. Мұндай жағдайда клиенттік қосымша серверде бірегей кілтпен (мысалы, UUID) тіркелуі керек. Содан кейін сервер уникалды кілтке хабарлама жіберіп, HTTP немесе XMPP сияқты келісілген клиент-сервер протоколы арқылы клиентке жеткізеді, ал клиент алған хабарламаны көрсетеді. Push хабарлама келген кезде, ол қысқа хабарламалар мен мәлімдемелерді жіберуге, қосымша белгішелеріне белгілер қоюға, ескерту шамды жыпылықтатқызуға немесе тұрақты түрде жағуға, сондай-ақ пайдаланушының назарын аудару үшін ескерту дыбыстарын ойнатуға мүмкіндік береді. Push хабарламалары әдетте қолданбалардың пайдаланушыларға ақпарат жеткізуі үшін қолданылады. Хабарламалардың мазмұнын мынадай мысалдарға бөлуге болады:
* Басқа пайдаланушылар жіберген Facebook Messenger сияқты хабарлау қосымшаларынан келген чат хабарламалары.
* Сатушылардың арнайы ұсыныстары: Сатушы өз ұсыныстарын клиенттерге жарнамалауы мүмкін.
* Іс-шараларды еске түсіру: Кейбір қосымшалар клиенттерге белгілі бір уақытқа еске түсіруді немесе ескертуді орнатуға мүмкіндік береді.
* Жазылған тақырыптардағы өзгерістер: Пайдаланушылар өз орналасқан жеріндегі ауа райы туралы жаңартуларды алуға немесе веб-беттегі өзгерістерді қадағалау үшін оны бақылауға алуы мүмкін.
* Нақты уақыт режиміндегі push хабарламалары жеке құпиялылық мәселелерін тудыруы мүмкін, себебі олар әлеуметтік желілердегі псевдонимдердің виртуалды сәйкестігін смартфон иелерінің нақты сәйкестігімен байланыстыруға болады. Рекламалық мақсаттарда қажетсіз push хабарламаларды пайдалану назарды ұрлаудың мысалы ретінде сынға ұшырады.