Java. Java Message Service. ANTAL Margit. JMS API technológia. ANTAL Margit. Sapientia - EMTE

Hasonló dokumentumok
Lottery. WebLogic JMS, Jersey, JMX, JNDI. Óbudai Egyetem, Java Enterprise Edition Műszaki Informatika szak Labor 8. Bedők Dávid v0.

JNDI - alapok. Java Naming and Directory Interface

Segédanyag: Java alkalmazások gyakorlat

S04-2 Elosztott alkalmazások készítése

Adatbázisok webalkalmazásokban

OOP: Java 8.Gy: Abstract osztályok, interfészek

Java. Perzisztencia. ANTAL Margit. Java Persistence API. Object Relational Mapping. Perzisztencia. Entity components. ANTAL Margit.

Segédanyag: Java alkalmazások gyakorlat

Enterprise Java Beans. EJB - Általános bevezető

Lottery #maven. JMS, Message Driven Bean, JMX, Singleton Session Bean. Óbudai Egyetem, Java Enterprise Edition Műszaki Informatika szak Labor 6

Programozási nyelvek Java

JavaServer Pages (JSP) (folytatás)

Kommunikáció. Távoli eljáráshívás. RPC kommunikáció menete DCE RPC (1) RPC - paraméterátadás. 3. előadás Protokollok. 2. rész

Stateless Session Bean

Tartalom DCOM. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés

Komponens modellek. 3. Előadás (első fele)

és az instanceof operátor

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

Adatkezelés. 11. előadás (Entity Beans)

9. MPI

Elosztott rendszerek: Alapelvek és paradigmák Distributed Systems: Principles and Paradigms

Abstract osztályok és interface-ek. 7-dik gyakorlat

A J2EE fejlesztési si platform (application. model) 1.4 platform. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

Szolgáltatásorientált rendszerintegráció. SOA-alapú rendszerintegráció. Enterprise Service Bus (ESB) Ercsényi András, BME IIT, 2011.

Osztályok. construct () destruct() $b=new Book(); $b=null; unset ($b); book.php: <?php class Book { private $isbn; public $title;

Szervlet-JSP együttműködés

Se S r e ial a iza z t a ion o n (in n Ja J v a a v ) a Szerializáció

UNIX: folyamatok kommunikációja

7. K: JAVA alapok Konzultáció

Bevezetés a párhuzamos programozási koncepciókba

Oracle Containers for Java - j2ee alkalmazás szerver funkciók. Molnár Balázs Oracle Hungary

Perzisztencia. ANTAL Margit. Sapientia - EMTE. ANTAL Margit Java technológiák 11. előadás Perzisztencia

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN

CREATE TABLE student ( id int NOT NULL GENERATED ALWAYS AS IDENTITY PRIMARY KEY, name varchar(100) NOT NULL, address varchar(100) NOT NULL )

Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges. Könyvtárhierarhiát fed: Pl.: java/util/scanner.java

Enterprise JavaBeans 1.4 platform (EJB 2.0)

Kivételkezelés, beágyazott osztályok. Nyolcadik gyakorlat

Helyes-e az alábbi kódrészlet? int i = 1; i = i * 3 + 1; int j; j = i + 1; Nem. Igen. Hányféleképpen lehet Javaban megjegyzést írni?

SZÁMÍTÓGÉPES ADATBÁZIS-KEZELÉS. A MySQL adatbáziskezelő PHP folytatás JDBC, ODBC

A WEB programozása - JSP1 dr.gál Tibor őszi félév

Bevezetés a Java programozási nyelvbe

Kivételek kezelése (exception handling) Hibakezelés old style. Kivételkezelés

Enterprise JavaBeans. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem. Az Enterprise JavaBeans

List<String> l1 = new ArrayList<String>(); List<Object> l2 = l1; // error

Programozási nyelvek Java

Tartalom. Az EJB 2.1 problémái Az EJB 3 megoldásai

Szoftver Tervezési Dokumentáció. Nguyen Thai Binh

Java EE. I. rész: Bevezetés OSUM rendezvény. Nagy Zoltán Arnold. na f t y. hu

A Java EE 5 plattform

Széchenyi István Egyetem. Programozás III. Varjasi Norbert

Bevezetés a Java programozási nyelvbe

Szoftvertechnológia alapjai Java előadások

4. rész: Java Enterprise Edition bevezetı. Bakay Árpád dr. NETvisor kft (30)

webalkalmazások fejlesztése elosztott alapon

Kommunikáció. Folyamatok közötti kommunikáció. Minden elosztott rendszer alapja

WebSphere Adapters. 6. változat 2. alváltozat. WebSphere Adapter for SAP Software felhasználói kézikönyv 6. változat 2. kiadás

DCOM Áttekintés. Miskolci Egyetem Általános Informatikai Tanszék. Ficsor Lajos DCOM /1

OOP: Java 11.Gy: Enumok, beágyazott osztályok. 13/1 B ITv: MAN

Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Adabáziselérés ODBC-n keresztül utasításokkal C#-ban

JAVA PROGRAMOZÁS 3.ELŐADÁS

Az UPPAAL egyes modellezési lehetőségeinek összefoglalása. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése

Osztott rendszerek, Java EE. Általános bevezető

Java bevezet o Kab odi L aszl o Kab odi L aszl o Java bevezet o

Java RMI Áttekintés. A Java RMI. A Java RMI architektúrája. Ficsor Lajos. Általános Infromatikai Tanszék Miskolci Egyetem 1.

Viczián István Vezető szoftverfejlesztő Kopint-Datorg Zrt.

JAVA webes alkalmazások

JAVA PROGRAMOZÁS 2.ELŐADÁS

Dinamikus adatszerkezetek. 2D generikus tömb: C++ 2D generikus tömb: C++

Dinamikus adatszerkezetek. 2D generikus tömb: C++ 2D generikus tömb: C++ 2D tömb: Java versus C++ 2D tömb: Java.

Hello, EJB! Egy egyszerű példa

2. fejezet Hálózati szoftver

Komponens alapú programozás Bevezetés

Bevezetés E LSŐ FEJEZET

Generikus Típusok, Kollekciók

Adatbázis alapú rendszerek gyakorlat Adatbázis alapú alkalmazásfejlesztés Java, C# környezetben

Debreceni Egyetem Informatikai Kar JAVA ENTERPRISE COMPUTING

Java IX. telkezelés a Java-ban

Java IX. telkezelés a Java-ban

OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek

Kommunikáció Androidon GSM hívás SMS küldés, fogadás Bluetooth NFC USB

Mi a különbség az extends és az implements között. Mikor melyiket kell használni? Comperable-t megvalósító oasztályokban össze lehet hasonlitani

Programozás I. 5. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

5. rész: A Java EE és az Enterprise Bean réteg. Bakay Árpád dr. NETvisor kft (30)

XML adatkezelés I. Az SAX szabvány. Dr. Kovács László Miskolci Egyetem Általános Informatikai Tanszék. XML adatok kezelési lehetőségei

Java Programozás 3. Gy: Java GUI. Swing, AWT

Bánsághi Anna

Gelle Kitti Algoritmusok és adatszerkezetek gyakorlat - 07 Hasítótáblák

JDBC - adatbáziskezelés

Objektumorientált programozás Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

Számítógépes Hálózatok. 5. gyakorlat

R I Szer e i r alizáció.

Java és web programozás

Java Business Integration szolgáltatásalapú architektúra JavaEE környezetben. Simon Géza Zsemlye Tamás

IoT rendszerek kommunikációs megoldásai vitmav22

Java programozási nyelv /ősz 9. óra. Java Server Pages. JSP technika alapjai

Programozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010

Párhuzamos és Elosztott Rendszerek II

Átírás:

Sapientia - EMTE 2008

Az előadás célja Üzenetkommunikációs architektúrák JMS Példák Üzenet gyártó Szinkron üzenetfogyasztó Aszinkron üzenetfogyasztó Üzenetbab (message-driven bean)

point-to-point modell: az üzenetet egyetlen cálalkalmazáshoz kell eljuttatni Üzenetek tárolása: memória perzisztens tároló publish-subscribe modell: az üzenetet több komponensnek, illetve több alkalmazásnak kell továbbítani broadcast (üzenetszórás) jellegű közzététel publisher: az üzenet készítője topic: téma kör subscriber: előfizetők

Point-point architektúra

Publish-subscribe architektúra

Üzenetrendszer résztvevők

Üzenetrendszer : olyan interfészek és osztályok halmaza, mely az üzenetkezelő szolgáltatások gyártófüggetlen elérését lehetővé teszik - (javax.jms csomag) implementáció: konkrét üzenetkezelő rendszer. Nem szükségszerű, hogy ban legyen implementálva. Alkalmazásszerver JMS támogatással: névszolgáltatást biztosít. Regisztrálni kell a kapcsolat gyártókat, üzenetküldési/-fogadási végpontokat (queue, topic) Ügyfél: amely a névszolgáltatás segítségével igénybe veszi a szolgáltatást

Adminisztrált objektumok Ezeket alkalmazásszerverben kell létrehozni (pl. GlassFish): Connection Factories szerepe kódból kapcsolatot létesíthetünk üzenetkezelő rendszerrel. Destination Resources típusok: Topic Destination: publish-subscribe architektúrához Queue Destination: point-to-point architektúrához

Üzenetrendszer ügyfelek Feladatuk: üzenet gyártása vagy fogyasztása gyártó fogyasztó szinkron : várakozik amíg üzenet érkezik aszinkron: azügyfél regisztrál az üzenetsornál, amely üzenet érkezésekor értesíti az összes regisztrált ügyfelet

Üzenetek Részei: fejléc: az üzenet továbbítására vonatkozó információk tulajdonságok: (név-érték) párok törzs: az üzenet tartalma üzenet típusok: TextMessage : karakterlánc MapMessage : asszociatív tömb BytesMessage : bájtsorozat StreamMessage: primitív típusú adatokat tartalmazó adatfolyam ObjectMessage: szerializálható objektum

JMS használat tipikus lépései 1. JNDI segítségével lekérjük a ConnectionFactory-t. Ez tartalmazza a kapcsolódáshoz szükséges paramétereket. Ennek segítségével kapcsplatot nyitunk az üzenetrendszerrel (Connection). 2. A Connection segítségével létrehozunk egy Session objektumot. Ez testesíti meg az üzenetküldés és fogadás munkamenetét. 3. Végponttól és architektúrától függően létrehozzuk az üzenetküldő, illetve fogadó objektumokat. küldő: QueueSender, TopicPublisher fogadó: QueueReceiver, TopicSubscriber

Példák Mindhárom projekt Netbeansben készült, típusa: Enterprise Application Client QSender SyncQReceiver AsyncQReceiver http://www.ms.sapientia.ro/ manyi/qsender.txt http://www.ms.sapientia.ro/ manyi/syncqreceiver.txt http://www.ms.sapientia.ro/ manyi/asyncqreceiver.txt

Üzenetbabok készítése aszinkron üzenetfogyasztó ügyfelek implementálják a MessageListener interfészt nincs közvetlen interfészük, sem lokális, sem pedig távoli eléréshez ezzel a komponenssel indirekt módon, az üzenetsoron keresztül, lehet kommunikálni rejtőzködő komponensek

MessageListener interfész import javax.jms.*; public interface MessageListener{ public void onmessage( Message message); }

Üzenetbab I package jms; import javax.ejb.activationconfigproperty; import javax.ejb.messagedriven; import javax.jms.*; @MessageDriven( mappedname = "jms/myqueue", activationconfig = { @ActivationConfigProperty (propertyname = "acknowledgemode", propertyvalue = "Auto-acknowledge"), @ActivationConfigProperty (propertyname = "destinationtype", propertyvalue = "javax.jms.queue") }

Üzenetbab II ) public class MessageListenerBeanBean implements MessageListener { public void onmessage( Message message ){ TextMessage msg = null; try{ if( message instanceof TextMessage){ msg = (TextMessage) message; System.out.println( "Received message: "+msg.gettext()); } else{ System.out.println( "Message of wrong type "); }

Üzenetbab III } } } catch( Exception e ){ System.out.println( "Exception: "+ e.getmessage()); }