Az ibm lotus domino ügynök fejlesztése jms támogatással

Számos szervezetben a meglévő IBM Lotus Domino alkalmazások nagy mennyiségű információt és adatot tartalmaznak más alkalmazásokhoz. A cikk bemutatja, hogyan lehet Java Lotus Domino kiszolgálón futó Java-ügynököt létrehozni az IBM Lotus Domino Designer-ben. Ez ügynök küld a JMS-szolgáltató üzeneteket és az átvevő válasz üzenetek használatával API Java Messaging Systems (JMS) 1.1, valamint az API Java névadási és címjegyzék felület (JNDI). Mint kommunikációs szolgáltató a cikkben használt IBM WebSphere MQ V6 azonban használata révén a JMS 1.1 kód lehetővé teszi a Lotus Domino alkalmazások csatlakozni bármely enterprise service bus (enterprise service bus - ESB), amely támogatja JMS. (Code teszteltük Lotus Domino V8, WebSphere MQ V6 és JMS 1.1 API, de ez is működnie kell Lotus Domino V5 és JMS 1.0 és újabb verziók).

A javasolt architektúra

Mielőtt részletesen megfontoljuk döntésünket, általánosságban meg fogjuk ismerni. Az 1. ábra bemutatja az egységesített modellezési nyelv (UML) telepítési diagramját, amelyből kiderül, hogyan működik a mintaalkalmazás. Nyilvánvaló, hogy az alkalmazás két különálló fizikai szervert igényel: egy Lotus Domino V8 kiszolgálót és egy WebSphere MQ V6 kiszolgálót. Természetesen futtathatja az alkalmazást egy szerverre történő elhelyezéssel, de egy elképzelhetőbb és nyilvánvalóbb forgatókönyv az elosztott hálózati konfiguráció használata. Az 1. ábrán látható továbbá, hogy a WebSphere MQ kiszolgáló támogatja a JNDI szolgáltatót és a JMS szolgáltatót anélkül, hogy további szoftvert kellene használni.

1. ábra: Az architektúra telepítésének diagramja

Miért használják ezt az architektúrát?

Nyilvánvaló, hogy sokféleképpen lehet a Lotus Domino adatainak kinyerése és átadása más alkalmazásoknak, tehát miért használjuk az üzeneteket, vagy inkább a JMS-t? Az üzeneteket egy aszinkron kommunikációs csatornán keresztül cserélik le, amely lehetővé teszi a Lotus Domino és a JMS szolgáltató számára, hogy gyenge kommunikációs módban (azaz a gyártó és az adatfogyasztó nem ismeri egymást) adatokat cseréljenek. Ezenkívül a JMS API használatával Java kódunk lehetővé teszi a Lotus Domino számára, hogy kölcsönhatásba lépjen bármely JMS szolgáltatóval, valamint kapcsolódjon a vállalati szerviz gumikhoz.

Cikk felülvizsgálata

A cikk lépései megfelelnek a műveleti sorrendnek a mintaalkalmazás létrehozásakor. Itt vannak a műveletek:

A WebSphere MQ konfigurálása

A WebSphere MQ V6 támogatja a JMS 1.1-et. Ez azt jelenti, hogy a WebSphere MQ V6 JMS 1.1 szolgáltatásként működhet. Ne feledje, hogy a JMS csak API specifikáció; Az üzenetküldő rendszer a JMS specifikáció konkrét végrehajtásával működik.

Annak érdekében, hogy a JMS-ügyfelek csatlakozzanak a WebSphere MQ-hoz, létre kell hoznia és konfigurálnia kell a sorkezelőt. A sor menedzser olyan futásidejű folyamatokat határoz meg, amelyek JMS-szolgáltatásokat biztosítanak a JMS-ügyfelek számára. A WebSphere MQ egy, az Eclipse-n alapuló adminisztrációs ügyfél, amely segíthet ebben a folyamatban.

  1. Indítsa el a WebSphere MQ Explorer programot a Start - Minden program - IBM Websphere MQ - Websphere MQ Explorer parancs kiválasztásával.
  2. Válassza ki a Queue Manager mappát a WebSphere MQ Explorer programban, majd kattintson a jobb egérgombbal, és válassza az Új - Queue Manager parancsot.
  3. A megjelenő varázslóban adja meg a Domino.QMGR nevet a sor kezelő neveként. Jelölje be a "Make this the default queue manager" jelölőnégyzetet. Írja be a SYSTEM.DEAD.LETTER.QUEUE értéket a Dead letter queue mezőbe. Más mezőkön hagyja az alapértelmezett beállításokat, majd kattintson a Befejezés gombra, amint azt a 2. ábra mutatja.
2. ábra. A sorkezelő konfigurálása

Az ibm lotus domino ügynök fejlesztése jms támogatással

Az ibm lotus domino ügynök fejlesztése jms támogatással

Jelenleg létrehoztunk egy sormenedzsert, amely képes tárolni az üzeneteket a Websphere MQ-ban, de a JMS-ügyfeleknek JNDI szolgáltatóra is szükségük van.

A JNDI konfigurálása

A JNDI csak egy specifikáció, ezért a szolgáltatónak végre kell hajtania. Ezt a megvalósítást az IBM WebSphere MQ V6 biztosítja a supportPac ME01 használatával, amely támogatást igényel a SupportPac MS0B-vel (lásd: Források). Ezek a supportPac csomagok könnyen telepíthetők: kicsomagolja őket, és másolja a JAR fájlokat a könyvtárba \ Java \ lib. A 3. ábra az archívumból kitöltött és a könyvtárba másolt \ Java \ lib JAR-fájlok, azaz mqcontext.jar és com.ibm.mq.pcf-6.0.3.jar.

Ha a WebSphere MQ a JNDI szolgáltató-nincs szükség külön JNDI-szolgáltató, mellyel a beadott JMS tárgyak a fizikai sorban Websphere MQ - ez a funkció biztosítja supportPac ME01.

3. ábra: JNDI supportPac csomagok

Az ibm lotus domino ügynök fejlesztése jms támogatással

Az ibm lotus domino ügynök fejlesztése jms támogatással

set CLASSPATH =% CLASSPATH%; C: \ Program Files \ IBM \ WebSphere MQ \ Java \ lib \ mqcontext.jar;
C: \ Program Files \ IBM \ Websphere MQ \ Java \ lib \ com.ibm.mq.pcf.jar

4. ábra: CLASSPATH frissítése a JMSAdmin.bat-ban

Az ibm lotus domino ügynök fejlesztése jms támogatással

Az ibm lotus domino ügynök fejlesztése jms támogatással

Miután hozzáadta a supportPac csomagok információit a JMSAdmin indítófájlhoz, csatlakozhat a JNDI szolgáltatóhoz adminisztrátori JMS objektumok létrehozásához. Ez a JMSAdmin eszköz csatlakozási tulajdonságainak beállítása a konfigurációs fájlban (JMSAdmin.config).

# JNDI konfigurációs paraméterek a WebSphere MQ JNDI-szolgáltatóként történő használatához
INITIAL_CONTEXT_FACTORY = com.ibm.mq.jms.context.WMQInitialContextFactory
PROVIDER_URL = localhost: 1414 / SYSTEM.DEF.SVRCONN

Mivel a JMSAdmin eszköz a WebSphere MQ kiszolgálón fut, a PROVIDER_URL paramétert localhost-ba kell állítani. Amint az 1. ábrán látható, a Java-Agent Lotus Domino távolról csatlakozik egy JNDI-szolgáltató, így DNS nevet használ a távoli szerver helyett a helyi állomás.

Most a JMSAdmin eszközt a parancssorból futtathatja:

C: \ Program Files \ IBM \ Websphere MQ \ Java \ bin \ JMSAdmin.bat parancsot

Admin Adminedged JMS objektumok létrehozása

def cf (JMS_ConnectionFactory) qmgr (Domino.QMGR) tran (kliens) chan (SYSTEM.DEF.SVRCONN)
host (bpte-demo-8.austin.ibm.com) port (1414)

1. táblázat: Parancsok sorrendje

Ezeket a JAR fájlokat a WebSphere MQ telepítési könyvtárból a C: \ Program Files \ IBM \ Websphere MQ \ Java \ lib könyvtárba másolták át.

Vessünk egy pillantást a kódra, és kitaláljuk, mi felelős minden részért. Az 1. lista egy közös kódot jelenít meg, amely mind a szolgáltató, mind az üzenetek fogyasztója számára megegyezik. Vegye figyelembe, hogy a kód sorszáma végponttól végpontig terjed, és a 2. és 3. listák kódja az 1. listában szereplő általános kódot követi.

Listázás 1. Közös kód

A 2. lista a JMS gyártó kódját mutatja, amely JMS üzeneteket hoz létre és elküldi egy távoli JMS szolgáltatónak. Mivel ez az ügynök a nézetben kiválasztott dokumentumokra vonatkozik, a 16. sorban gyűjtjük ezeket a dokumentumokat. Ezután végezzünk egy ciklust, konvertálva a Lotus Domino dokumentumot a gyűjteményből egy olyan XML-dokumentumba, amely egyszerű JMS formátumba írható (19. sor).

Listázás 2. Üzenetgyártó

Az ügynök indítása után ellenőrizheti, hogy az üzenetek elérték-e a WebSphere MQ-ot a WebSphere MQ Explorer használatával. A WebSphere MQ Explorer programban jelölje ki a Queues (Várólisták) mappát a sorvezérlő összes sorának megtekintéséhez, majd kattintson a jobb egérgombbal a JMS_Queue ikonra, és válassza ki a Tallózás üzenetek elemet a sorban lévő üzenetek megtekintéséhez.

Ennek eredményeképpen minden JMS_PUT ügynök indításakor kiválasztott dokumentum megjelenik (lásd: 10. ábra).

10. ábra: Üzenetek a sorban

Az ibm lotus domino ügynök fejlesztése jms támogatással

Az ibm lotus domino ügynök fejlesztése jms támogatással

Ha duplán rákattint az egyik üzenetre, akkor megjelenik a Tulajdonságok párbeszédpanel, amely megjeleníti az üzenetet, ahogyan a WebSphere MQ-ban megjelenik (lásd a 11. ábrát).

11. ábra: Üzenet a WebSphere MQ-ban

Az ibm lotus domino ügynök fejlesztése jms támogatással

Az ibm lotus domino ügynök fejlesztése jms támogatással

Jelenleg sikeresen mentettük az egész Lotus Domino dokumentumot XML formátumban a WebSphere MQ sorban. És a mi kódunkban nincsenek külön osztályok a WebSphere MQ számára, csak JMS-kód van, amely ugyanolyan könnyen elküldi ezt az üzenetet a WebSphere Enterprise Service Bus számára.

Annak bizonyításához, hogy a WebSphere MQ üzeneteket a JMS-en keresztül is fogadhatja, létrehoztunk egy másik ügynököt az üzenetek fogyasztására. A gyártó kódjához hasonlóan ez a kód nem tudja, melyik JMS-szolgáltatót használja - csak tudja, hogyan kell "beszélgetni" a JMS-re. A felhasználói kód a 3. listán látható.

Listázás 3. Az üzenetek fogyasztója

Fontos különbség a fogyasztói kód között, hogy a fogyasztónak meg kell várnia és meg kell hallgatnia az üzeneteket, amint azt a 16. sor mutatja. Amikor megkapjuk az üzenetet, létrehozunk egy új Lotus Domino dokumentumot a JMS üzenet tárolásához a Lotus Domino adatbázisban (19-23 sorok). A hibakeresés céljából a Java konzolon lévő üzenetek információit jelenítjük meg, amelyek a 12. ábrán látható módon jelennek meg a Lotus Domino Designer Tools-Show Java Debug Console használatával.

12. ábra: Információ a Java konzolon lévő üzenetről

Az ibm lotus domino ügynök fejlesztése jms támogatással

Az ibm lotus domino ügynök fejlesztése jms támogatással

Ezenkívül, ha megnyitja a JMS_Imported nézetet, láthatja a JMS fogyasztói kód végrehajtása során létrehozott dokumentumokat. A dokumentum megnyitásakor megjelenik a kézbesített XML szöveg (lásd 13. ábra).

13. ábra Domino dokumentumokként mentett üzenetek

Az ibm lotus domino ügynök fejlesztése jms támogatással

Az ibm lotus domino ügynök fejlesztése jms támogatással

következtetés

Ebben a cikkben megmutattuk, hogyan küldhetünk üzenetet a Lotus Domino-tól egy JMS-szolgáltatóhoz, valamint fogadhatunk üzeneteket. Ennek eredményeképpen egyszerű és gazdaságos módon jutottunk el a Lotus Domino és a vállalati szerviz busz megosztásához. Az üzenetszolgáltatóként a WebSphere MQ-t használtuk, de kódunk bármely JMS szolgáltatóval együtt működik.

köszönöm

Külön köszönetet mondunk Bob Balabannak és Bobby Woolfnak a cikk felülvizsgálatához.

Források letöltése