Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

EJB üzenet vezérelt bean (MDB)

Hasonló előadás


Az előadások a következő témára: "EJB üzenet vezérelt bean (MDB)"— Előadás másolata:

1 EJB üzenet vezérelt bean (MDB)
Message Driven Beans alapjai

2 Mikor érdemes használni?
Ha asszinkron hivásokra van szükség. (Az RMI általában nem asszinkron, azaz a kliens várakozik a válaszra) Ez általában olyan esetekre igaz, amikor egy művelet elvégzése lassú és az eredménye nagy valószinűséggel nem befolyásolja a klienst. (pl. teszt feltöltés és éles feltöltés, prepaid mobil rendszerek) A hagyományos hivások hátránya, hogy a szervert ismernie kell a kliensnek. Szerverek eltávolitása illetve hozzáadása a rendszerhez problémákba ütközhet. A hivás előtt feltételezzük, hogy a szerver működik. A hagyományos kliens szerver modell feltételezi, hogy 1 kliens és 1 szerver van. Lehet olyan eset, amikor egy hivást több szerver is meg kell kapjon párhuzamosan. Ez a hagyományos modellben cluster használatával is kivitelezhető

3 Megoldások egy üzenetvezérelt asszinkron rendszerben
Egy webáruházban, miután a felhasználó megadja a hitelkártya számát, az ellenőrzés kb percet is igénybe vehet. Ezt nem szabad kiváratni a felhasználóval, hanem asszinkron (nem blokkolt) módon kell a kérést intézni, és a válasz a jóváhagyással vagy az elutasitással en keresztül fog megérkezni. Amennyiben az üzenetkezelő middleware alkalmas un. garantált kézbesitésre (guaranteed delivery), akkor a kliensek által küldött üzenetek akkor is megmaradnak, amikor a kiszolgáló éppen nem működik. Az egyszerű RMI esetén ez nem lehetséges, mert nincs közvetitő a kliens és szerver között. A legtöbb üzenet orientált middleware termék alkalmas arra, hogy egy üzenetsorra jövő üzeneteket számos ‘fogyasztó’ megkapja.

4 MOM - Message oriented middleware
Legismertebb termékek: Tibco Rendezvous, IBM WebSphere MQ, BEA Tuxedo\Q, Sun Java System Messaging Server, Microsoft MSMQ, SonicMQ, FioranoMQ. Főbb lehetőségek: garantált kézbesités, hibatűrés, terheléselosztás (load balancing of destinations), SOAP support over JMS, Subscriber management

5 Java Messaging Service (JMS)
JMS célja, hogy egységesitse az üzenet szolgáltatásokat. Két részből áll: API, amely az üzenet elküldést és megérkezést programozását támogatja; SPI – service provider interface. Üzenetkézbesitési tipusok Publish/subscribe (pub/sub) Point to point (PTP)

6 Consumer 1 Producer 1 Topic Producer 2 Consumer 2 Publish/Subscribe Producer 1 Queue Consumer 2 Producer 2 Point to point

7 Kliens JNDI Naming service JMS rendszer kliens oldali nézete
JMS Driver Client Runtime JMS Server JMS Connection Factory Queue 1 2: Create Connection JMS Connection Queue 2 3: Create Session Kliens 5 Create Producer or Consumer JMS Session Topic 1 1: Retrive JMS Driver (Connection Factory) 4: Lookup JMS Destination 6 Send or receive Message JMS Producer or JMS Consumer JNDI Naming service JMS rendszer kliens oldali nézete

8 InitialContext ctx = new InitialContext();
// JNDI inicializáció InitialContext ctx = new InitialContext(); // 1: connection factory lookup TopicConnectionFactory factory = (TopicConnectionFactory ) ctx.lookup(”jms/TopicConnectionFactory”); //2: Use connection factiry to create JMS connection TopicConnection connection = factory.createTopicConnection(); //3: use connection to create session TopicSession session = connection.createTopicSession(false, Session.AUTO_ACKNOWLEDGE); //4: Lookup destination Topic topic = (Topic) ctx.loopup(”jms/Topic”); //5: Create a message publisher TopicPublisher publisher = session.createPublisher(topic); //6: Create and publish a message TextMessage msg = session.createTextMessage(); msg.setText(”Text message”); publisher.send(msg);

9 Üzenet vezérelt bean Az üzenet vezérelt bean egy speciális EJB komponens, amely JMS üzeneteket képes megkapni. A middleware továbbitja az MDB-nek az üzenetsoron megjelenő üzeneteket. A kliens nem érheti el közvetlenül az MDB business interfészét. Az MDB nem rendelkezik remote vagy local business interfésszel, mivel csak a container hivhatja meg ezen metódusokat. Az MDB listener metódusainak nincs visszatérési értéke és kivételt sem küld vissza a kliens oldalra. Az MDB állapot mentes, azaz nem tárolja az állapotát. Az MDB egyszálú, azaz csak egyetlen üzenetet lehet feldolgozni egyszerre.


Letölteni ppt "EJB üzenet vezérelt bean (MDB)"

Hasonló előadás


Google Hirdetések