Ba’zi manbalarda xizmat bu – CORBA dan kattaroq bo‘lgan narsa deyilsa, boshqalarida xizmat o‘zi kichkina, ammo ularni majmui stekga bog‘lanishi mumkin degan talqinlarni uchratish mumkin. Ta’riflarni xilma-xilligidan ham noaniqlik kelib chiqadi. Meni shaxsiy fikrimcha esa, xizmat har qanday hajmda bo‘lishi mumkin. Uning CORBA obyektidan katta kichikligi esa ahamiyatga ega emas. Asosiysi, u o‘z vazifasini bajaruvchi tayyor obyekt bo‘lib, iste’molchidan o‘z ichki ishlarini berkitishi kerak. Men bekorga “obyekt” degan atamani ishlatmadim, chunki bu texnologiya bilan bo‘lgan o‘xshashlik haqiqatdan ham mavjud.
Xizmatni tarmoqdagi kompyuterda (yoki lokal kompyuterda) joylashgan biron bir funksiya deb faraz qilish mumkin. Bu xizmat qandaydur ishlarni amalga oshiradi, unga kiruvchi parametrlar va natija esa tarmoq orqali yuboriladi. Tashqi dastur (korporativ dastur, web brauzer yoki xatto cho‘ntak kompyuteridagi kichik dasturcha ham) shu xizmatdan ma’lumotlar olish va ularni boshqaruvchi uchun foydalanadi. Tashqi dasturlar xizmat bilan aloqa qila olishlari uchun, standart hisoblanuvchi SOAP (Simple Object Access Protocol, obyektlar bilan ishlash uchun mo‘ljallangan oddiy protokol) mavjud. Bu protokol HTTP so‘rovlariga asoslangan. Xizmatni ishlashi quyidagicha: Serverga HTTP orqali so‘rovlar (masalan POST) yuboriladi. Bu so‘rovlarni ichida esa XML-sxemasida tuzilgan SOAP so‘rovi bo‘ladi. Ishni natijasini ham xizmat HTTP protokoli bo‘yicha qaytaradi. Natija ham XML-sxemasi ko‘rinishidagi SOAP javobi bo‘ladi.

SOA bilan ishlash uchun faqatgina SOAP dan emas, balki CORBA dan yoki o‘zingiz tuzgan dasturdan ham foydalanish mumkin. Bundan ma’no o‘zgarmaydi. Ammo bizni fikrimizcha, SOAP eng yaxshi qaror hisoblanadi, shuning uchun bu maqolada biz SOA bilan SOAP birikmasini ko‘rib chiqamiz.Kengaytiriluvchi arxitekturaning qudratini tushunishlik uchun, keling hoziroq kichik misol ko‘rib chiqamiz. Yaqqol misolga aynan Web bo‘ladi, chunki shu yerda xizmatlar eng ko‘p tarqalgan va ularni deyarli barchasida SOA ifodalari hamda WEB xizmatlar birlashtirilgan.
Shu ma’lumotdan foydalanib, siz mijozga agarda kitob omborda yo‘q bo‘lsa, u o‘sha kitobni qachon olishi mumkinligi haqida aniqroq ma’lumot berishingiz mumkin.
Boshqa tarafdan qaralganda, ulgurji do‘konning web xizmati, iste’molchilarining so‘rovlarini qondirish uchun, o‘z bazasidan tekshiradi xamda kitoblarni chiqaruvchi nashriyotning web xizmatiga so‘rov berishi mumkin. Undan u quyidagi ma’lumotlarni so‘rashi mumkin:
- kitob nashriyotda mavjudligini
- yo‘q bo‘lsa, qachon qayta nashr etilishini
- nashriyot ulgurji korxonaga qachon kitoblarni yetkaza olishi mumkinligi va qaysi ombordan yetkazilishi (nashtiyotlarni har xil shaxarlarda bir nechtadan omborlari bo‘lishi mumkin).
Agarda xizmatlar omborning holati bilan birga narxlarning o‘zgarishini ham bera olsachi? Kitoblarni narxi ham o‘zgarishi mumkin (inflyatsiyani xali xech kim bekor qilgani yo‘q) va agarda do‘kon tegishli chora ko‘rmasa, o‘z zarariga savdo qilib qo‘yishi mumkin. Agarda narx web xizmatlar orqali boshqarib turilmasa, nashriyot tomonidan kitobninng narxi ko‘tarilgan yoki yetkazilish narxi oshgan holatlarda, internet do‘kon web xizmatlar yordamida darxol chora ko‘rishi mumkin. Boring bundan ham takomilroq bo‘lishi mumkin – do‘kon avtomatik tarzda o‘z narxlarini quyidagi formulaga asoslanib belgilashi mumkin:
Xozirgi vaqtda korxonalar uchun web – yuqorida ta’riflab o‘tilgan, real vaqtda ishlovchi xizmatlarni o‘z mijozlarga taqdim etishni yo‘lga qo‘yilishi eng samarali vosita xisoblanadi.
Ma’lumot almashinuvi uchun ishlatiluvchi SOAP protokoli, XML va HTTP ochiq standartlariga asoslangan. XML va HTTP platformadan mustaqil bo‘lgani uchun, ular asosidagi xizmatlar xam TCP/IP bilan ishlay oladigan xar qanday platformada ishlay oladi. Bu protokol xozirgi kundagi barcha qurilma va OTlarda ishlatish mumkin, demakki biz ko‘rib chiqayatgan arxitektura uchun chegara deyarli yo‘q. Sizni Windows dasturingiz Linux da ishlab turgan xizmat bilan bemalol ishlashi mumkin va teskarisi. Bravzer yordamida esa xizmat bilan xatto mobil telefondan xam ishlash mumkin.

Ko‘pgina yangi texnologiyalarda kodni maksimal darajada samarali ishlatilishini inobatga olishga harakat qilinadi. Agarda yangi joyda avval bitirilgan vazifani bajarish imkoni paydo bo‘lsa, kod qaytadan yozilmasligi kerak. Xizmatlar bu muammoni a’lo darajada hal qiladi.
SOA arxitekturasi faqatgina web dasturi uchun emas balki korporativ tizimni har xil modullari uchun ma’lumotlar ta’minlovchisi sifatida ishlashi mumkin. Juda ko‘p holatlarda har xil modullar bir xil ma’lumotlar ishlashi kerak bo‘ladi. Bunda faqatgina ularni har xil tarzda ko‘rsatib berishi kerak bo‘ladi. Masalan, ombordagi qoldiqlar haqidagi ma’lumot ta’minlash bo‘limiga, marketologlarga, taxlilichilarga va hokazolarga kerak bo‘lishi mumkin. Har bir modulda ma’lumotlarni kerakli tarzda ko‘rsatib berilishini bajaruvchi funksiyalarni tuzish juda qimmatga tushishi va bunda isrofgarchilikga yo‘l qo‘yilishi mumkin. Bunday xolatda, XML sxemasida so‘ralan maxsulotni qoldiqlarini qaytarib beruvchi yagona xizmatni tuzib qo‘yishni o‘zi kifoya qiladi, mijoz dasturida esa faqatgina shu sxemadagi ma’lumotlarni foydalanuvchiga qulay tarzda ko‘rsatib berilishi qoladi. XML esa XSL va DTD lar bilan birgalikda formatlashga doir keng imkoniyatlarni taqdim etsa.

Faraz qilaylik, siz vaqt bilan hamohang bo‘lmoqchisiz va korxonangizda barcha zamonaviy tizimlardan foydalanmoqdasiz. Bunda Sarf-harajatlarni boshqarish, mijozlar bilan va ta’minlovchilar bilan ishlash kabi tizimlardan foydalanasiz. Hozirgi kunda ERP, CRM va boshqa tizimlarni har xil korxonalar tarafidan tuzilgan xilma xil turlarini uchratish mumkin. Ammo ularni barchasini birgalikda ishlashlarini qanday qilib ta’minlash mumkin. Barcha tizimlar va modullarni birgalikda ishlashlari va ma’lumot almashinuvini ta’minlash uchun biron bir mexanizm kerak bo‘ladi. Ma’lumot almashinuvchida XML standart bo‘lib bormoqda. Chunki u oddiy, qulay, quvvatli va platformadan mustaqil. SOA ham ma’lumotlarni XML ko‘rinishida qaytarganligi uchun, har xil modullar va dasturlar ma’lumotlarni xizmatlardan so‘rab olishlarini ta’minlash mantiqga to‘g‘ri keladi.
Farhod Dadajonov
Farhod Dadajonovning so'nngi maqolalari (hammasini ko'rish)
- SOA (Service Oriented Architecture) – xizmatga asoslangan dasturlash - 18/03/2016
- Sonlar umuman olganda (Code Complete kitobidan tarjima 12.1 bo’lim) - 12/01/2016
- Kompyuter yig‘amiz - 29/12/2014