Informatika fanida xabarlarni uzatish - bu kompyuterda xatti -harakatlarni chaqirish (ya'ni dasturni ishga tushirish) usuli. Chaqiruv dasturi jarayonga
(aktyor yoki ob'ekt bo'lishi mumkin) xabar yuboradi va tegishli kodni tanlash va ishga tushirish uchun shu jarayonga va uni qo'llab -quvvatlovchi infratuzilmaga tayanadi. Xabarni uzatish an'anaviy dasturlashdan farq qiladi, bu erda jarayon, subroutine yoki funktsiya to'g'ridan -to'g'ri nom bilan chaqiriladi. Xabarlarni uzatish bir vaqtning o'zida va ob'ektga yo'naltirilgan dasturlashning ba'zi modellarining kalitidir.
Xabarlarni uzatish zamonaviy kompyuter dasturlarida hamma joyda
uchraydi. [Havola zarur] Bu dasturni tashkil etuvchi ob'ektlar bir -biri bilan ishlash usuli va turli kompyuterlarda ishlaydigan ob'ektlar va tizimlar uchun vosita sifatida ishlatiladi (masalan, Internet). o'zaro ta'sir qilish. Xabarlarni uzatish turli mexanizmlar, shu jumladan kanallar yordamida amalga oshirilishi mumkin.
Xabarlarni uzatish - bu kompyuterda xatti -harakatlarni chaqirish (ya'ni
dasturni ishga tushirish) usuli. An'anaviy dasturdan farqli o'laroq, dasturni umumiy funktsiyani o'ziga xos dasturlardan ajratish uchun ob'ekt modeli ishlatiladi. Chaqiruv dasturi xabar yuboradi va mos kodni tanlash va bajarish uchun ob'ektga tayanadi. Qidiruv qatlamni ishlatish asoslari asosan ikki toifaga bo'linadi: kapsülasyon va tarqatish.
Enkapsulyatsiya - bu dasturiy ta'minot ob'ektlari, bu xizmatlar qanday
amalga oshirilganligini bilmasdan yoki ularga g'amxo'rlik qilmasdan, boshqa ob'ektlarga xizmatlarni chaqira olishi kerak degan fikr. Enkapsulyatsiya kodlash mantig'ining miqdorini kamaytirishi va tizimlarni yanada barqaror ishlashiga olib kelishi mumkin. Masalan, ishlab chiqaruvchiga qo'ng'iroq qilish kerak bo'lgan dastur yoki funktsiyani aniqlaydigan IF-THEN bayonotlari o'rniga, ob'ektga xabar yuborish mumkin va ob'ekt uning turiga qarab tegishli kodni tanlaydi.
Buni qanday ishlatishning birinchi misollaridan biri kompyuter grafikasi
sohasida bo'lgan. Grafik ob'ektlarni boshqarishda har xil murakkabliklar mavjud. Masalan, yopiq shakldagi maydonni hisoblash uchun faqat to'g'ri formuladan foydalanish shakli uchburchak, to'rtburchak, ellips yoki aylana bo'lishiga qarab o'zgaradi. An'anaviy kompyuter dasturlashda, bu IF-THEN bayonotlari shakli qanday ob'ekt ekanligini sinab ko'rishga va tegishli kodni chaqirishga olib keladi. Ob'ektga yo'naltirilgan usul-bu Shakl deb nomlangan sinfni to'rtburchaklar va ellips (o'z navbatida, kvadrat va aylana kichik sinflari bor) bilan belgilash, so'ngra har qanday shaklga o'z maydonini hisoblashni so'rash. Keyin har bir Shape obyekti subklass usulini shunday ob'ektga mos keladigan formuladan foydalanib chaqiradi.
Tarqatilgan xabarlarni uzatish dasturchilarga turli xil va har xil vaqtda turli kompyuterlarda ishlaydigan kichik tizimlardan tashkil topgan tizimlarni yaratish bo'yicha umumiy xizmatlarni ta'minlaydigan arxitektura qatlamini beradi. Tarqatilgan ob'ekt xabar yuborganda, xabarlar qatlami quyidagi muammolarni hal qilishi mumkin:
Xabar paydo bo'lgan joylardan turli xil operatsion tizimlar va dasturlash
tillari yordamida jarayonni topish.
Agar xabarni boshqarish uchun mos keladigan ob'ekt ishlamayotgan bo'lsa, xabarni navbatda saqlash va ob'ekt mavjud bo'lganda xabarni chaqirish. Bundan tashqari, agar kerak bo'lsa, natijani yuboruvchi ob'ekt qabul qilishga tayyor bo'lguncha saqlash.
Tarqatilgan bitimlar uchun turli tranzaktsion talablarni nazorat qilish,
masalan. Ma'lumotni kislotali sinovdan o'tkazish.
Sinxron xabarlarni uzatish bir vaqtning o'zida ishlaydigan ob'ektlar o'rtasida sodir bo'ladi. U Java va Smalltalk kabi ob'ektga yo'naltirilgan dasturlash tillarida qo'llaniladi.
Sinxron xabar almashish sinxron funktsiyali qo'ng'iroqqa o'xshaydi; xuddi
chaqiruvchi vazifani bajarishni kutganidek, yuborish jarayoni ham qabul qilish jarayoni tugashini kutadi. Bu ba'zi ilovalar uchun sinxron aloqani ishlamasligi mumkin. Masalan, katta, taqsimlangan tizimlar foydalanish uchun etarli darajada yaxshi ishlamasligi mumkin. Bunday katta, taqsimlangan tizimlar ishlashi kerak bo'lishi mumkin, ularning ba'zi quyi tizimlari texnik xizmat ko'rsatishni to'xtatganda va hokazo.
Ish bilan band bo'lgan ofisni tasavvur qiling -a, 100 ta ish stoli
kompyuterlari bir -biriga elektron pochta xabarlarini faqat sinxron xabar orqali yuboradi. Bir ishchi o'z kompyuterini o'chirib qo'ysa, qolgan 99 ta kompyuter bir elektron pochtani qayta ishlash uchun kompyuterni qayta yoqmaguncha muzlab qolishi mumkin.
Asenkron xabar bilan, qabul qiluvchi ob'ekt o'tayotgan yoki so'ralayotgan
ob'ekt xabar yuborganda band bo'lishi mumkin. Funktsional chaqiruv analogiyasini davom ettirish, xuddi chaqirilgan funktsiyani bajarilishini kutmasdan, darhol qaytadigan funktsiya chaqirig'iga o'xshaydi. Xabarlar qabul qilish jarayoni talab qilmaguncha saqlanadigan navbatga yuboriladi. Qabul qilish jarayoni o'z xabarlarini qayta ishlaydi va natijalarni asl jarayon bo'yicha (yoki belgilangan keyingi jarayon) qabul qilish uchun navbatga yuboradi.
Asenkron xabarlar bir vaqtning o'zida ishlamasligi mumkin bo'lgan tizimlar
uchun ma'lumotlarni saqlash va qayta uzatish uchun qo'shimcha imkoniyatlarni talab qiladi va ular odatda dasturiy ta'minotning vositachi darajasi (ko'pincha o'rta dastur deb ataladi) bilan boshqariladi; Xabarga yo'naltirilgan o'rta dasturlar (MOM) bo'lgan keng tarqalgan tur.
Asenkron aloqada talab qilinadigan bufer to'la bo'lganda muammolarga olib kelishi mumkin. Yuboruvchini blokirovka qilish yoki kelajakdagi xabarlarni bekor qilish to'g'risida qaror qabul qilinishi kerak. Bloklangan jo'natuvchi tiqilib qolishiga olib kelishi mumkin. Agar xabarlar qoldirilsa, aloqa endi ishonchli bo'lmaydi.
Sinxronizatsiyani sinxronizator yordamida asenkron aloqaning ustiga qurish
mumkin. Masalan, a-Sinxronizator jo'natuvchi har doim qabul qiluvchidan tasdiq xabari kutishini ta'minlab ishlaydi. Yuboruvchi keyingi xabarni faqat qabul qilinganidan keyin yuboradi. Boshqa tomondan, asenkron aloqa ham sinxron aloqa ustiga qurilishi mumkin. Masalan, zamonaviy mikrokernellar odatda sinxron xabar almashish ibtidosini beradi [havola kerak] va asenkron xabarlarni yordamchi iplar yordamida amalga oshirish mumkin.