Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
1
JMS WebServices Petr Aubrecht CA
Je 10 druhů lidí: ti, kteří rozumí binárnímu kódu, a ti, kteří ne
2
Co dnes probereme JMS posílání zpráv textové zprávy, objekty
WebServices vzdálené volání funkcí oboje je dostupné v JEE WS je dostupné i v JRE (jednoduchý web server) vhodné pro integraci různých systémů
3
JMS
5
JMS Java Messaging System asynchronní komunikace
robustní řešení, zaručené doručení zprávy volitelně priority, timeout Loosely coupled communication, Message-Oriented Middleware je možné kombinovat spojovat různé aplikace vlastní implementace je záležitost implementace, definováno je rozhraní pro uživatele např. Glassfish má connectory pro připojení na další systémy legacy systémy, CORBA, mail, Jabber/XMPP
6
JMS v případě JEE se o veškerou agendu stará kontejner
connections, vytváření zpracovávajících objektů škálování, příp. load balancing schéma životní cyklus
7
Message Driven Bean Jsou dva typy posílání zpráv, je potřeba zaregistrovat (!) queue, point to point messaging domain topic, publish/subscribe messaging domain zpracování může být synchronní (volání receive) asynchronní (listener) Posílat se mohou zprávy textové objektové dále Map, Bytes, Stream, Empty zprávy mohou mít textové atributy (key/value)
8
Queue, Topic Queue Topic
9
JMS zpráva Definuje několik typů zpráv
Jak je zpráva serializována už definováno není Zpráva má hlavičku, properties a tělo Hlavička pro routing zprávy delivery mode, msg ID, timestamp, priorita, ReplyTo, msg type Properties (jméno, hodnota) Aplikační + MOM specifické údaje Díky unifikaci zpráv lze vybírat zprávy podle údajů v hlavičce (tzv. Selektor) (SQL 92 subset) Tělo Stream, Map, Text, Object, Bytes
10
Definice queue/topicu
@MessageDriven(mappedName = "jms/TestQueue", activationConfig = { @ActivationConfigProperty(propertyName = "acknowledgeMode", propertyValue = "Auto-acknowledge"), @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue") }) public class NewMessageBean implements MessageListener { public NewMessageBean() {} public void onMessage(Message message) { }
11
Poslání zprávy @Resource(name = "jms/TestQueue")
private Queue testQueue; @Resource(name = "jms/TestQueueFactory") private ConnectionFactory testQueueFactory; ... Connection connection = testQueueFactory.createConnection(); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); MessageProducer messageProducer = session.createProducer(testQueue); messageProducer.send(createJMSMessageForjmsTestQueue(session, session.createTextMessage(„Ahoj!“)));
12
Implementace JMS Komerční IBM MQ, Sonic MQ, Fiorano, BEA, Sun MQ
Open Source OpenJMS, ActiveMQ, JbossMessaging, JBossMQ mom4j, JORAM, MantaRay, UberMQ
13
Web Service
14
Web Service protokol založený na XML a HTTP
původní motivace byla jednoduchost a využití stávajících zvládnutých technologií Corba byla na Microsoft příliš složitá (i to XML je pro ně těžký, ale už je to lepší) průchod skrz firewally jak psát nové firewally, aby omezily útoky přes WS? opravdu snadná implementace (na základní úrovni)
15
W3C definice A Web service is a software system designed to support interoperable machine-to-machine interaction over a network. It has an interface described in a machine- processable format (specifically WSDL). Other systems interact with the Web service in a manner prescribed by its description using SOAP messages, typically conveyed using HTTP with an XML serialization in conjunction with other Web-related standards.
16
Technologie XML (Extensible Markup Language)
WSDL (Web Services Description Language) UDDI (Universal Description, Discovery and Integration) A Web Service is located by its listing in a UDDI SOAP (Simple Object Access Protocol) Web Services communicate using SOAP Dále XML-RPC JAX-RPC, JAX-WS
17
UDDI (Universal Description, Discovery and Integration)
Popisuje služby (services), podobné zlatým stránkám Slouží k vyhledání vhodné služby pro klienta “creates a platform-independent, open framework for describing services, discovering businesses, and integrating business services using the Internet.” Přístup z Javy pomocí JAXR technologie
18
WSDL (Web Services Description Language)
Definuje interface dané služby Types: datové typy (např. pomocí XSD) Messages: typy zpráv pro komunikaci Operations: akce podporované službou Bindings: komunikační protokoly použité pro přenos dat Ports: komunikační brány (binding + adresa) Service: popis daní služby
19
SOAP (Simple Object Access Protocol)
“Lightweight” protokol, nezávislý na platformě a programovacím jazyku Obálka a tělo zprávy Typicky přenášený pomocí HTTP Typicky request-response komunikace
20
Typické použití Klient kontaktuje UDDI registr aby nalezl vhodnou službu (web service) Klient získá WSDL dané služby Klient vytvoří SOAP zprávu a pošle ji službě Služba zpracuje požadavek a může odeslat SOAP odpověď
21
Java technologie pro Web Services
JAX-RPC: API for XML-based RPC JAXR: Java API for XML Registries JAXB: Java Architecture for XML Binding JAXP: API for XML Processing JAXM: API for XML Messaging SAAJ: SOAP with Attachments API JAX-WS: Java API for XML Web Services Nahrazuje JAX-RPC
22
Prostředí Web Services v Javě
Apache Axis od Apache konzorcia, verze 2.0 je stále vidět JEE kontainer (Glassfish, JBoss, komerční) řeší i security, transakce integrují technologie z předchozí strany stateless session beans mohou být zpřístupněny pro WS JSE základní podpora pro klienta i server
23
RESTful Web Services Jiný způsob jak vytvářet Web Services
REST = Representational State Transfer Inspirováno WWW (resources, URI, ...) Jednoznačná identifikace zdroje pomocí URI Veškerý stav přenášen v URI obecný interface pro přístup ke zdrojům (e.g., HTTP GET, POST, PUT, DELETE) Architektonický styl, ne standard
24
Závěr Vyzkoušejte, není to složité. Další čtení
Sun JEE tutorial: tml Java Passion: / Celé se to začne komplikovat, když dojde na zabezpečení, login, transakce atd. Objeví se nekompatibilita, takže pro opravdu kritická nasazení nasadit řešení jednoho výrobce (typicky buď všechno od MS nebo nic :-) ).
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.