Jakarta Messaging - Jakarta Messaging
Jakarta Messaging API (ent Java Message Service tai JMS API) on Java Application Programming Interface (API) ja sanoma-välitykseen . Se tarjoaa yleisiä viestintämalleja, jotka pystyvät käsittelemään tuottaja-kuluttaja-ongelman , joita voidaan käyttää viestien lähettämisen ja vastaanottamisen helpottamiseen ohjelmistojärjestelmien välillä . Jakarta Messaging on osa Jakarta EE: tä ja se määriteltiin alun perin Sun Microsystemsissä kehitetyllä eritelmällä ennen Java-yhteisöprosessin ohjaamista .
Yleinen ajatus viestinnästä
Viestintä on löyhästi kytketyn hajautetun viestinnän muoto, jossa tässä yhteydessä termi "viestintä" voidaan ymmärtää viestien vaihdoksi ohjelmistokomponenttien välillä. Viestin suuntautunut teknologioita yritä rentoutua tiukasti kytketty viestinnälle (kuten esimerkiksi TCP- verkko pistorasiat , CORBA tai RMI ) viemällä väliosan. Tämän lähestymistavan avulla ohjelmistokomponentit voivat kommunikoida keskenään epäsuorasti. Tämän edut sisältävät viestien lähettäjien, joiden ei tarvitse olla tarkkoja tietoja vastaanottimistaan.
Viestinnän etuihin kuuluu kyky integroida heterogeenisiä alustoja, vähentää järjestelmän pullonkauloja, lisätä skaalautuvuutta ja reagoida muutoksiin nopeammin.
Versiohistoria
- JMS 1.0
- JMS 1.0.1 (5. lokakuuta 1998)
- JMS 1.0.1a (30. lokakuuta 1998)
- JMS 1.0.2 (17. joulukuuta 1999)
- JMS 1.0.2a (23. joulukuuta 1999)
- JMS 1.0.2b (27. elokuuta 2001)
- JMS 1.1 (12. huhtikuuta 2002)
- JMS 2.0 (21. toukokuuta 2013)
- JMS 2.0a (16. maaliskuuta 2015)
JMS 2.0: ta ylläpidetään tällä hetkellä Java-yhteisöprosessissa nimellä JSR 343.
JMS 3.0: ta kehitetään varhaisessa vaiheessa osana Jakarta EE: tä.
Elementit
Seuraavat ovat JMS-elementtejä:
- JMS-palveluntarjoaja
- JMS-käyttöliittymän toteutus viestikeskeiselle väliohjelmistolle (MOM). Palveluntarjoajat toteutetaan joko Java JMS -toteutuksena tai sovittimena muuhun kuin Java MOM: iin.
- JMS-asiakas
- Sovellus tai prosessi, joka tuottaa ja / tai vastaanottaa viestejä.
- JMS-tuottaja / kustantaja
- JMS-asiakas, joka luo ja lähettää viestejä.
- JMS-kuluttaja / tilaaja
- JMS-asiakas, joka vastaanottaa viestejä.
- JMS-viesti
- Objekti, joka sisältää JMS-asiakkaiden välillä siirrettävät tiedot.
- JMS-jono
- Vaihealue, joka sisältää lähetetyt viestit, jotka odottavat lukemista (vain yksi kuluttaja). Kuten nimijono ehdottaa, viestit toimitetaan lähetetyssä järjestyksessä. JMS-jono takaa, että kutakin viestiä käsitellään vain kerran.
- JMS-aihe
- Jakelumekanismi useille tilaajille toimitettujen viestien julkaisemiseen.
Mallit
JMS-sovellusliittymä tukee kahta erillistä mallia:
- Pisteestä pisteeseen
- Julkaise ja tilaa
Pisteestä pisteeseen malli
Pisteestä pisteeseen -viestijärjestelmässä viestit reititetään yksittäisille kuluttajille, jotka ylläpitävät saapuvien viestien jonoja. Tämä viestintätyyppi perustuu viestijonojen , lähettäjien ja vastaanottimien käsitteeseen . Jokainen viesti on osoitettu tietylle jonolle, ja vastaanottavat asiakkaat poimivat viestit jonoista, jotka on perustettu pitämään viestejä. Vaikka mikä tahansa määrä tuottajia voi lähettää viestejä jonoon, kukin viesti taataan toimitettavan ja kuluttavan yhden kuluttajan. Jonot säilyttävät kaikki heille lähetetyt viestit, kunnes viestit on käytetty loppuun tai kunnes viestit vanhenevat. Jos yhtään kuluttajaa ei ole rekisteröity kuluttamaan viestejä, jono pitää heidät kiinni, kunnes kuluttaja rekisteröi itsensä kuluttamaan niitä.
Julkaise ja tilaa -malli
Julkistaa-ja-merkintään malli tukee julkaista viestejä tietyn viestin "aihe". Tilaajat voivat rekisteröidä kiinnostusta vastaan viestejä julkaistaan tietystä viestin aihe. Tässä mallissa julkaisija ja tilaaja eivät tiedä toisistaan. Hyvä analogia tähän on tuntematon ilmoitustaulu.
- Nolla tai useampi kuluttaja saa viestin.
- Kustantajien ja tilaajien välillä on ajoitusriippuvuus. Julkaisijan on luotava viesti-aihe, jonka asiakkaat voivat tilata. Tilaajan on pysyttävä jatkuvasti aktiivisena viestien vastaanottamiseksi, ellei se ole perustanut kestävää tilausta. Siinä tapauksessa viestit, jotka on julkaistu, kun tilaajaa ei ole yhdistetty, jaetaan uudelleen aina, kun se muodostaa yhteyden uudelleen.
JMS tarjoaa tavan erottaa sovelluksen siirtokerroksen datan tarjoamiseksi. Samoja Java- luokkia voidaan käyttää viestintään eri JMS-palveluntarjoajien kanssa käyttämällä Java Naming and Directory Interface (JNDI) -tietoja haluamallesi palveluntarjoajalle. Luokat muodostavat yhteyden jonoon tai aiheeseen ensin yhteystehtaalla ja käyttävät sitten viestejä täytetään ja lähetetään tai julkaistaan. Vastaanottopuolella asiakkaat sitten vastaanottavat tai tilaavat viestit.
URI-järjestelmä
RFC 6167 määrittelee jms: URI-mallin Java-viestipalvelulle.
Palveluntarjoajan toteutukset
JMS: n käyttämiseen tarvitaan JMS-palveluntarjoaja, joka voi hallita istuntoja, jonoja ja aiheita. Java EE -versiosta 1.4 alkaen JMS-palveluntarjoajan on oltava kaikissa Java EE -sovelluspalvelimissa. Tämä voidaan toteuttaa käyttämällä Java EE Connector -arkkitehtuurin viestien sisäänvirtauksen hallintaa , joka saatettiin ensin saataville kyseisessä versiossa.
Seuraava on luettelo tavallisista JMS-palveluntarjoajista:
- Amazon SQS : n Java Messaging Library
- Apache ActiveMQ
- Apache Qpid , käyttäen AMQP: tä
- IBM MQ (aiemmin MQSeries, sitten WebSphere MQ)
- IBM WebSphere Application Serverin palvelun integrointiväylä (SIBus)
- JBoss Messaging ja HornetQ alkaen JBoss
- Joram päässä OW2 Consortium
- Avoin Viestijono alkaen Oracle
- OpenJMS OpenJMS-ryhmästä
- Oracle WebLogic Server ja Oracle AQ
- RabbitMQ alkaen Pivotal Software
Katso myös
- Viestipohjaiset pavut
- Viestijono - JMS: n taustalla oleva käsite
- Palvelukeskeinen arkkitehtuuri
- Viestilähetystekniikoilla jotka eivät ole toteuttaa JMS API ovat:
- Advanced Message Queuing Protocol (AMQP) - standardoitu viestijonoprotokolla, jossa on useita itsenäisiä toteutuksia
- Data Distribution Service (DDS) - Object Management Group (OMG) -standardoitu reaaliaikainen viestintäjärjestelmä, jossa on yli kymmenen toteutusta, jotka ovat osoittaneet julkaisijoiden ja tilaajien yhteentoimivuuden
- Microsoft Message Queuing - vastaava tekniikka, toteutettu .NET Frameworkille
Viitteet
Lisälukemista
- Richards, Mark; Richard Monson-Haefel; David A.Chappell (2009). Java Message Service, toinen painos . O'Reilly. ISBN 978-0 596 52204-9.