Web service — tarmoq orqali standart veb protokollari yordamida boshqa dasturlarga funksional imkoniyat yoki ma’lumot taqdim etadigan xizmat. U inson uchun tayyor sahifadan ko‘ra machine-to-machine aloqa uchun mo‘ljallanadi. Client request yuboradi, xizmat belgilangan contract asosida response qaytaradi. Web service internetda ham, tashkilotning ichki tarmog‘ida ham ishlashi mumkin.
Asosiy uslublar
SOAP web service XML envelope, WSDL contract va WS-* standartlari bilan kuchli formal model beradi. Operation, input, output va fault schema orqali tasvirlanadi. Enterprise integratsiyada message security, reliable messaging va transaction kabi qo‘shimcha standartlar qo‘llanishi mumkin.
REST uslubidagi xizmat HTTP resurslari, method semantics, status code va representationlardan foydalanadi. JSON keng tarqalgan, lekin REST bitta format bilan cheklanmaydi. /orders/42 resursni, GET, PATCH va DELETE esa unga nisbatan amallarni anglatadi. Hypermedia qo‘llansa response keyingi qonuniy amallarga link beradi.
RPC uslubida endpoint masofadagi funksiya chaqiruviga o‘xshaydi. JSON-RPC, XML-RPC va gRPC turli transport hamda encodingdan foydalanadi. gRPC odatda Protocol Buffers va HTTP/2 asosida typed contract, streaming va code generation beradi. “Web service” atamasi tarixan SOAP bilan bog‘langan bo‘lsa-da, keng ma’noda HTTP orqali xizmat ko‘rsatuvchi API’larni ham qamrab oladi.
Contract
Contract endpoint, authentication, operation, request-response schema, xato va limitlarni belgilaydi. WSDL SOAP uchun, OpenAPI HTTP API uchun machine-readable tavsif beradi. Contract client SDK, validation va hujjat generatsiyasini osonlashtiradi, ammo haqiqiy server xulqi bilan mosligi test qilinadi.
Versiyalashda optional field qo‘shish kabi mos o‘zgarish afzal. Field ma’nosini almashtirish yoki required qilish consumerlarni buzadi. Eski versiyani bekor qilish muddati, migration yo‘li va usage telemetriyasi bilan boshqariladi. Consumer-driven contract test muhim client kutgan qismlarni provider o‘zgarishiga qarshi tekshiradi.
Ishonchlilik
Har network chaqiruvi kechikishi, timeout bo‘lishi yoki javob yo‘qolishi mumkin. Client cheklangan deadline, cancellation va transient xatoga backoff bilan retry qo‘llaydi. State-changing operatsiya idempotency key yoki tabiiy idempotent semantics bilan takroriy bajarilishdan himoyalanadi.
Circuit breaker ishlamayotgan dependencyga cheksiz chaqiruvni to‘xtatadi. Rate limiting xizmatni adolatli bo‘lish va kapasitetni himoya qilishga yordam beradi. Bulkhead alohida dependency yoki tenant uchun resurs poolini ajratib, bitta muammo barcha requestlarni band qilishini kamaytiradi. Health check faqat process ishlayotganini emas, trafik qabul qilishga tayyorligini ajratadi.
Xavfsizlik
Transport TLS bilan shifrlanadi va server sertifikati tekshiriladi. Authentication API key, OAuth token, mutual TLS yoki SOAP tokeni orqali bo‘lishi mumkin. Authorization har operation va resurs darajasida bajariladi. Service accountga minimal scope beriladi, credential qisqa muddatli bo‘ladi va logga tushmaydi.
Schema validation zararli yoki tasodifiy noto‘g‘ri inputni erta rad etadi. Body hajmi, XML nesting, upload va decompression chegaralanadi. SOAP parserda external entity o‘chiriladi. Error response stack trace va ichki manzilni oshkor qilmaydi. Sensitive payload trace va monitoringda maskalanadi.
Kuzatuv va boshqaruv
Request ID va distributed trace xizmatlar zanjirini kuzatadi. Metric latency percentile, error rate, throughput va saturationni o‘lchaydi. Log route template, principal va natijani yozadi, lekin yuqori cardinality ID’larni metric labelga aylantirmaydi. Service Level Objective foydalanuvchi ko‘radigan ishonchlilikni aniq chegaralaydi.
API gateway routing, authentication va quota’ni markazlashtirishi mumkin. Service registry dinamik endpointlarni topadi. Biroq gateway yoki service mesh biznes contractning o‘rnini bosmaydi; xizmat egasi schema, data va operatsion javobgarlikni saqlaydi.
Bog‘liq tushunchalar
SOAP, REST, RPC, WSDL, OpenAPI, API gateway, Service-oriented architecture