Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
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.
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.