Jakarta xabar almasıw

**Jakarta xabar almasıw** API (burın **Java Message Service** yamasa **JMS API**) ‒ xabarǵa baǵdarlanǵan aralıq programmalıq támiynat ushın Java qosımshaların programmalastırıw interfeysi (API) bolıp tabıladı. Ol programmalıq támiynat sistemaları arasında xabarlardı jiberiw hám qabıl etiwdi ańsatlastırıw ushın paydalanıw múmkin bolǵan, islep shıǵarıwshı-tutınıwshı máselesin sheshe alatuǵın ulıwma xabar almasıw úlgilerin támiyinleydi. Jakarta xabar almasıwı Jakarta EE bólimi bolıp tabıladı hám dáslepki Sun Microsystems tárepinen islep shıǵarılǵan specifikaciya menen belgilengen, keyin Java Community Process tárepinen basqarılǵan.

## Xabar almasıwdıń ulıwma ideyası
Xabar almasıw programmalıq támiynat komponentleri arasında xabar almasıw retinde túsiniwge bolatuǵın, erkin baylanıslı bólistirilgen kommunikaciya forması bolıp tabıladı. Xabarǵa baǵdarlanǵan texnologiyalar aralıq komponentti engiziw arqalı tıǵız baylanıslı kommunikaciyanı (mısalı, TCP tarmaq soketleri, CORBA yaki RMI) bosatıwǵa umtıladı. Bul usıl programmalıq támiynat komponentlerine bir-biri menen tikkeley emes túrde baylanısıwǵa imkaniyat beredi. Onıń artıqmashılıqlarına xabar jiberiwshilerdiń óz qabıl etiwshileri haqqında anıq maǵlıwmatqa iye bolıwı shárt emesligi kiredi.

Xabar almasıwdıń artıqmashılıqlarına túrli platformalardı birlestiriw, sistemanıń tar jerlerin azaytıw, masshtablanıwdı arttırıw hám ózgerislerge tez jawap beriw qabileti kiredi.

### Versiya tariyxı

* JMS 1.0
* JMS 1.0.1 (1998-jıl, 5-oktyabr)
* JMS 1.0.1a (1998-jıl, 30-oktyabr)
* JMS 1.0.2 (1999-jıl, 17-dekabr)
* JMS 1.0.2a (1999-jıl, 23-dekabr)
* JMS 1.0.2b (2001-jıl, 27-avgust)
* JMS 1.1 (2002-jıl, 12-aprel)
* JMS 2.0 (2013-jıl, 21-may)
* JMS 2.0a (2015-jıl, 16-mart)

JMS 2.0 házirgi waqıtta Java Community Process negizinde JSR 343 retinde ámelge asırıladı.

JMS 3.0 Jakarta EE quramında erte rawajlanıw stadiyasında.

## Elementler
Tómendegiler JMS elementleri bolıp tabıladı:

; JMS provayderi
: Xabarǵa baǵdarlanǵan aralıq programmalıq támiynat (MOM) ushın JMS interfeysiniń ámelge asırılıwı. Provayderler ya Java JMS ámelge asırılıwı yaki Java-ǵa tiyisli bolmaǵan MOM-ǵa adapter retinde ámelge asırıladı.
; JMS klienti
: Xabarlardı islep shıǵaratuǵın hám/yamasa qabıl etetuǵın qosımsha yaki process.
; JMS óndiriwshi/járiyalawshı
: Xabarlardı jaratıwshı hám jiberiwshi JMS klienti.
; JMS tutınıwshı/jazılıwshı
: Xabarlardı qabıllawshı JMS klienti.
; JMS xabarı
: JMS klientleri arasında jiberiletuǵın maǵlıwmatlardı óz ishine alǵan obekt.
; JMS gezegi
: Jiberilgen hám oqılıwın kútip turǵan xabarlardı óz ishine alǵan aralıq orın (tek bir tutınıwshı tárepinen oqıladı). Gezek ataması kórsetip turǵanınday, xabarlar jiberilgen tártipte jetkiziledi. JMS gezegi hárbir xabardıń tek bir márte qayta isleniwine kepillik beredi.
; JMS teması
: Bir neshe jazılıwshılarǵa jetkiziletuǵın xabarlardı járiyalaw ushın tarqatıw mexanizmi.

## Modeller
JMS API eki túrli modeldi qollap-quwatlaydı:

* Noqattan-noqatqa
* Járiyalaw hám jazılıw

### Noqattan-noqatqa modeli
Noqattan-noqatqa xabar almasıw sistemasında xabarlar kiriwshi xabarlardıń gezeklerin ámelge asıratuǵın ayırım tutınıwshılarǵa baǵdarlanadı. Bul xabar almasıw túri xabar gezekleri, jiberiwshiler hám qabıl etiwshiler koncepciyasına tiykarlanǵan. Hárbir xabar belgili bir gezekke adreslenip, qabıl etiwshi klientler óz xabarların saqlaw ushın dúzilgen gezeklerden xabarlardı aladı. Gezekke qansha islep shıǵarıwshı xabar jiberiwi múmkin bolsa da, hárbir xabardıń jetkiziliwine hám bir tutınıwshı tárepinen tutınılıwına kepillik beriledi. Gezekler ózlerine jiberilgen barlıq xabarlardı xabarlar tutınılǵansha yaki xabarlardıń múddeti ótkenshe saqlaydı. Eger xabarlardı tutınıw ushın tutınıwshılar dizimge alınbaǵan bolsa, gezek olardı tutınıwshı dizimge alınǵansha saqlaydı.

### Járiyalaw hám jazılıw modeli
Járiyalaw hám jazılıw modeli belgili bir xabar "temasına" xabarlardı járiyalawdı qollap-quwatlaydı. Jazılıwshılar belgili bir xabar temasında járiyalanǵan xabarlardı alıwǵa qızıǵıwshılıq bildiriwi múmkin. Bul modelde járiyalawshı da, jazılıwshı da bir-biri haqqında bilmeydi. Buǵan jaqsı uqsatıw anonim bildiriwler taqtası bolıp tabıladı.

* Nol yaki onnan kóp tutınıwshı xabardı aladı.
* Járiyalawshılar menen jazılıwshılar arasında waqıtqa baylanıslılıq bar. Járiyalawshı klientler jazılıwı ushın xabar temasın jaratıwı kerek. Jazılıwshı turaqlı jazılıwdı ornatpaǵan bolsa, xabarlardı alıw ushın úziliksiz aktiv bolıwı kerek. Bunday jaǵdayda jazılıwshı baylanısta bolmaǵan waqıtta járiyalanǵan xabarlar qayta baylanısqanda qayta tarqatıladı.

JMS qosımshanı maǵlıwmat beriwdiń transport qabatınan ajıratıw usılın támiyinleydi. Kerekli provayder ushın Java Naming and Directory Interface (JNDI) informaciyasın paydalanıw arqalı túrli JMS provayderleri menen baylanısıw ushın birdey Java klasslarınan paydalanıw múmkin. Klasslar dáslep gezek yamasa temaǵa baylanısıw ushın baylanıs fabrikasın paydalanadı, sońınan xabarlardı toltırıw hám jiberiw yaki járiyalaw ushın paydalanadı. Qabıl etiw tárepinde klientler sońınan xabarlardı qabıl etedi yamasa olarǵa jazıladı.

## URI sxeması
 Java Message Service ushın `jms:` URI sxemasın belgileydi.

## Provayderlerdi ámelge asırıw

JMS-ten paydalanıw ushın sessiyalardı, gezeklerdi hám temalardı basqara alatuǵın JMS provayderi bolıwı kerek. Java EE versiyası 1.4-ten baslap, barlıq Java EE qosımsha serverlerinde JMS támiynatshısı bolıwı kerek. Bul dáslep sol versiyada bar bolǵan Java EE Connector Architecture-nıń xabar kiriwin basqarıwın paydalanıw arqalı ámelge asırılıwı múmkin.

## Derekler

__BÖLİDİMÖNDEMEW__