Кіріспе

Бағдарламалық немесе аппараттық инфрақұрылымның түрі

Хабарға бағытталған делдалдық бағдарламалық қамтамасыз ету (MOM) – таратылған жүйелер арасында хабарларды жіберу және қабылдауды қолдайтын бағдарламалық немесе аппараттық инфрақұрылым. MOM қолданба модульдерін әртүрлі платформаларға таратуға мүмкіндік береді және бірнеше операциялық жүйе мен желілік протоколдарды қолдайтын қолданбаларды жасаудың қиындығын азайтады. Делдалдық бағдарламалық жасақтама әр түрлі операциялық жүйелер мен желілік интерфейстердің егжей-тегжейінен қолданба жасаушыны оқшаулайтын таратылған байланыс қабатын құрайды. MOM әдетте әртүрлі платформалар мен желілерде қолданылатын API-лерді ұсынады. Бұл делдалдық бағдарламалық жасақтама қабаты тәуелсіз әзірленген және әртүрлі желілік платформаларда жұмыс істейтін бағдарламалық компоненттерге (қосымшалар, Enterprise JavaBeans, сервлеттер және басқа компоненттер) бір-бірімен өзара әрекеттесуге мүмкіндік береді. Әртүрлі желілік түйіндерде таратылған қолданбалар байланыс үшін қолданба интерфейсін пайдаланады. Сонымен қатар, әкімшілік интерфейс арқылы өзара байланысты қолданбалардың жаңа, виртуалды жүйесін қателерге төзімді және қауіпсіз етуге болады. MOM клиент/сервер архитектурасының барлық байланыс компоненттерінде орналасқан бағдарламалық элементтерді ұсынады және әдетте клиент пен сервер бағдарламалары арасындағы асинхронды шақыруларды қолдайды. MOM клиент/сервер механизмімен байланысты күрделіліктерге қолданба жасаушылардың араласуын азайтады.

Кемшіліктер

Көптеген хабарға бағытталған орталық бағдарламалық құралдардың негізгі кемшілігі – олар архитектурада қосымша компонентті, яғни хабар алмасу агентін (хабарлама брокерін) қажет етеді. Кез келген жүйеде болғандай, тағы бір компонентті қосу өнімділіктің және сенімділіктің төмендеуіне әкелуі мүмкін, сонымен қатар жүйенің күтімін күрделендіріп, қымбатқа соғуы да ғажап емес. Сонымен қатар, көптеген қолданбалар арасындағы байланыстардың өзінде синхрондылық қасиеті болады, яғни жіберуші хабарға жауап күткеннен кейін ғана жұмысын жалғастыруды қалайды (нақты уақыт есептеу және дерлік нақты уақыт жағдайларында бұл өте маңызды). Хабарға негізделген байланыс табиғаты бойынша асинхронды болғандықтан, мұндай жағдайларда тиімді болмауы мүмкін. Дегенмен, көптеген MOM жүйелерінде бір сұрау мен оның жауабын жалған синхронды транзакция ретінде біріктіруге болады. Синхронды хабарлау жүйесінде шақырушы функция шақырылған функция өз жұмысын аяқтағанша қайта оралмайды. Ал еркін байланысқан асинхронды жүйеде шақырушы клиент қабылдаушыға жұмыс жүктеуді жалғастыра береді, шақырылған компоненттің жұмысты өңдеуге қажетті ресурстары таусылғанша немесе ол бұзылғанша. Әрине, осындай жағдайларды орындауды бақылап, хабар алмасу ағынын реттеу арқылы азайтуға немесе болдырмауға болады, бірақ мұндай шаралар синхронды хабарлау жүйесінде қажет емес. Ең маңыздысы – әрбір жүйенің артықшылықтары мен кемшіліктерін түсіну. Әр жүйе әртүрлі міндеттерге арналған. Кейде қажетті нәтижеге қол жеткізу үшін екі жүйенің үйлесімі қажет болады.

Стандарттар

Тарихи тұрғыдан алғанда, хабарға бағытталған орталық бағдарламалық жасақтаманы қолдануды реттейтін стандарттардың жетіспеуі мәселе тудырды. Көптеген негізгі жеткізушілердің өз іске асырулары бар, олардың әрқайсысының өз қолданбалық бағдарламалау интерфейсі (API) және басқару құралдары бар. Хабарға бағытталған орталық бағдарламалық жасақтама үшін ұзақ жылдар бойы қалыптасқан стандарттардың бірі – X/Open тобының XATMI спецификациясы (Distributed Transaction Processing: The XATMI Specification), ол процестер аралық байланыс үшін API-ді стандарттайды. Бұл API-ге арналған белгілі іске асырулар – ATR Baltic-тің Enduro/X орталық бағдарламалық жасақтамасы және Oracle-тің Tuxedo. Advanced Message Queuing Protocol (AMQP) – қатысушы қолданба компоненттері арасында қолданылатын протокол мен форматтарды анықтайтын, сондықтан іске асырулар өзара үйлесімді болатын OASIS және ISO стандарты. AMQP-ді икемді маршруттау схемаларымен, соның ішінде кең таралған хабарлама парадигмаларымен, мысалы, нүктеден нүктеге, желдеткіштен тарату, жариялау/жазылу және сұрау-жауап (бұл схемалар протокол стандартының 1.0 нұсқасынан қасақана алынып тасталған, бірақ маршруттау үшін нақты іске асыруға және/немесе негізгі желілік протоколға сүйенеді) пайдалануға болады. Сондай-ақ, ол транзакцияларды басқару, кезекке қою, тарату, қауіпсіздік, басқару, кластерлеу, федерация және әртүрлі платформаларды қолдауды қамтамасыз етеді. AMQP-ді қолданатын Java қолданбалары әдетте Java JMS-те жазылады. Басқа іске асырулар C#, C++, PHP, Python, Ruby және басқа тілдер үшін API ұсынады. Жоғары деңгейлі архитектура (HLA IEEE 1516) – модельдеудің өзара үйлесімділігі үшін IEEE және SISO стандарты. Ол C++ немесе Java-да API арқылы ұсынылатын қызметтер жиынтығын анықтайды. Қызметтер модульдік Федерация Объектісінің моделіне негізделген жариялау/жазылу негізінде ақпарат алмасуды ұсынады. Сонымен қатар, логикалық модельдеу уақытына негізделген координацияланған деректер алмасуы және уақытты жылжыту, сондай-ақ синхрондау нүктелері үшін қызметтер бар. Қосымша қызметтер меншік құқығын беруді, деректерді таратуды оңтайландыруды және қатысушы федерацияларды (жүйелерді) бақылау мен басқаруды қамтамасыз етеді. MQ телеметриялық тасымалы (MQTT) – OASIS ұйымы қолдаған ISO стандарты (ISO/IEC PRF 20922). Ол TCP/IP протоколының үстінен жеңіл жариялау/жазылу сенімді хабарламалар тасымалдау протоколын ұсынады, бұл M2M/IoT контекстерінде байланыс үшін қолайлы, мұнда кішкентай код көлемі қажет және/немесе желілік өткізу қабілеті шектеулі. Object Management Group's Data Distribution Service (DDS) – хабарға бағытталған жариялау/жазылу (P/S) орталық бағдарламалық жасақтама стандартын ұсынады, оның мақсаты – жариялаушылар мен жазылушылар арасындағы масштабталатын, нақты уақыт, сенімді, жоғары өнімді және өзара үйлесімді деректер алмасуын қамтамасыз ету. Стандарт C++, C++11, C, Ada, Java және Ruby тілдеріне интерфейстерді ұсынады.

XMPP

eXtensible Messaging and Presence Protocol (XMPP) – XML (Extensible Markup Language) негізінде құрылған, хабарға бағытталған делдалдық бағдарламалық қамтамасыз ету үшін байланыс протоколы. Кеңейтілуге арналған протокол сонымен қатар жазылым жүйелерін жариялау, VoIP, бейне, файлдарды жіберу, ойындар, смарт желі сияқты заттардың интернеті және әлеуметтік желілерге де қолданылады. Көптеген жылдам хабар алмасу протоколдарынан өзгеше, XMPP ашық стандартта анықталған және ашық жүйелік әзірлеу және қолдану тәсілін пайдаланады, осы арқылы кез келген адам XMPP қызметін жүзеге асырып, басқа ұйымдардың жүзеге асыруларымен өзара әрекеттесе алады. XMPP ашық протокол болғандықтан, жүзеге асырулар кез келген бағдарламалық қамтамасыз ету лицензиясын пайдаланып жасалуы мүмкін; көптеген серверлік, клиенттік және кітапханалық жүзеге асырулар ақысыз және ашық кодты бағдарламалық қамтамасыз ету ретінде таралса да, көптеген тегін және коммерциялық бағдарламалық қамтамасыз етулер де бар. Интернет-инженерлік тобы (IETF) 2002 жылы негізгі протоколдарды IETF жылдам хабар алмасу және қатысу технологиясы ретінде ресмилендіру үшін XMPP жұмыс тобын құрды. XMPP жұмыс тобы төрт спецификацияны (RFC 3920, RFC 3921, RFC 3922, RFC 3923) жасады, олар 2004 жылы ұсынылатын стандарттар ретінде бекітілді. 2011 жылы RFC 3920 және RFC 3921 тиісінше RFC 6120 және RFC 6121 арқылы алмастырылды, ал RFC 6122 XMPP мекенжай форматын анықтайды. IETF-де стандартталған осы негізгі протоколдарға қосымша, XMPP стандарттар қоры (бұрынғы Jabber Software Foundation) ашық XMPP кеңейтімдерін әзірлеуде белсенді. XMPP негізіндегі бағдарламалық қамтамасыз ету XMPP стандарттар қорына сәйкес, Интернет бойынша кеңінен таратылған және Қорғаныс министрлігінің (DoD) Бірыңғай мүмкіндіктер аясының негізін құрайды. Java EE бағдарламалау ортасы JMS (Java Message Service) деп аталатын стандартты API-ді ұсынады, оны көптеген MOM провайдерлері жүзеге асырады және MOM API-нің нақты жүзеге асырылуын жасыруға бағытталған; алайда, JMS алмасатын хабарламалардың форматын анықтамайды, сондықтан JMS жүйелері өзара үйлесімді емес. Осыған ұқсас күш-жігер белсенді дамып келе жатқан OpenMAMA жобасында, оның мақсаты, әсіресе C клиенттеріне ортақ API ұсыну. Дегенмен, қазіргі уақытта (2012 жылдың тамызы) бұл негізінен нарыққа бағытталған деректерді (мысалы, акция бағалары) жазылым жүйесі арқылы тарату үшін қолайлы.

Хабарлар кезегіне қою

Хабарлар кезегі таратылған қолданбалар арасында ақпарат алмасуға мүмкіндік береді. Хабар кезегі жадта немесе дискіде сақталуы мүмкін. Хабарламалар қызмет тұтынушысы оларды өңдегенге дейін кезекте сақталады. Хабарлар кезегі арқылы қолданбаны тәуелсіз түрде жүзеге асыруға болады – олар бір-бірінің орналасқан жерін білуі қажет емес, сондай-ақ осы хабарламаны алу үшін күтуді болдырмау үшін процедураларды орындауды жалғастырудың қажеті де жоқ.

Тенденциялар

Advanced Message Queuing Protocol (AMQP) хабарға бағытталған делдалдық жүйе үшін ашық стандартты қолданбалық қабат протоколын ұсынады. Object Management Group's Data Distribution Service (DDS) негізгі DDS спецификациясына көптеген жаңа стандарттарды қосты. Толығырақ ақпарат алу үшін OMG Data Distribution Service (DDS) спецификацияларының каталогына жүгініңіз. XMPP – XML (Extensible Markup Language) негізіндегі хабарға бағытталған делдалдық жүйе үшін байланыс протоколы. Streaming Text Oriented Messaging Protocol (STOMP), бұрын TTMP деп аталған, қарапайым мәтіндік протокол болып табылады және STOMP клиенттеріне протоколды қолдайтын кез келген хабарлама брокерімен байланысуға мүмкіндік беретін өзара сәйкес сымдық форматты ұсынады. Тағы бір тенденция – хабарға бағытталған делдалдық жүйе функцияларының аппараттық құралдарда, әдетте FPGA немесе басқа арнайы кремнийлі чиптерде жүзеге асырылуы.