instant integration into the amqp cloud with apache qpid...
TRANSCRIPT
![Page 1: Instant Integration into the AMQP Cloud with Apache Qpid ...archive.apachecon.com/na2013/presentations/26-Tuesday/Tapping_… · Instant Integration into the AMQP Cloud with Apache](https://reader030.vdocuments.net/reader030/viewer/2022041021/5ed14257cd86a73bbf4f39a0/html5/thumbnails/1.jpg)
Instant Integration into the AMQP Cloud with Apache Qpid Messenger
Rafael SchlomingPrinciple Software Engineer @ Red [email protected]
![Page 2: Instant Integration into the AMQP Cloud with Apache Qpid ...archive.apachecon.com/na2013/presentations/26-Tuesday/Tapping_… · Instant Integration into the AMQP Cloud with Apache](https://reader030.vdocuments.net/reader030/viewer/2022041021/5ed14257cd86a73bbf4f39a0/html5/thumbnails/2.jpg)
Overview● Introduction● Messaging● AMQP● Proton● Demo● Summary
![Page 3: Instant Integration into the AMQP Cloud with Apache Qpid ...archive.apachecon.com/na2013/presentations/26-Tuesday/Tapping_… · Instant Integration into the AMQP Cloud with Apache](https://reader030.vdocuments.net/reader030/viewer/2022041021/5ed14257cd86a73bbf4f39a0/html5/thumbnails/3.jpg)
Introduction● AMQP 1.0
– OASIS Standard
– Messaging Protocol
● Proton: A toolkit for speaking AMQP– The AMQP Protocol Engine API
– The AMQP Messenger API
● Part of the Apache Qpid project– Qpid is the home for AMQP at Apache
![Page 4: Instant Integration into the AMQP Cloud with Apache Qpid ...archive.apachecon.com/na2013/presentations/26-Tuesday/Tapping_… · Instant Integration into the AMQP Cloud with Apache](https://reader030.vdocuments.net/reader030/viewer/2022041021/5ed14257cd86a73bbf4f39a0/html5/thumbnails/4.jpg)
Messaging● Tightly Coupled
WarehouseStore Front
![Page 5: Instant Integration into the AMQP Cloud with Apache Qpid ...archive.apachecon.com/na2013/presentations/26-Tuesday/Tapping_… · Instant Integration into the AMQP Cloud with Apache](https://reader030.vdocuments.net/reader030/viewer/2022041021/5ed14257cd86a73bbf4f39a0/html5/thumbnails/5.jpg)
Messaging● Tightly Coupled
WarehouseStore Front
:-(
:-(
![Page 6: Instant Integration into the AMQP Cloud with Apache Qpid ...archive.apachecon.com/na2013/presentations/26-Tuesday/Tapping_… · Instant Integration into the AMQP Cloud with Apache](https://reader030.vdocuments.net/reader030/viewer/2022041021/5ed14257cd86a73bbf4f39a0/html5/thumbnails/6.jpg)
Messaging● Loosely Coupled
WarehouseStore Front Order Queue
![Page 7: Instant Integration into the AMQP Cloud with Apache Qpid ...archive.apachecon.com/na2013/presentations/26-Tuesday/Tapping_… · Instant Integration into the AMQP Cloud with Apache](https://reader030.vdocuments.net/reader030/viewer/2022041021/5ed14257cd86a73bbf4f39a0/html5/thumbnails/7.jpg)
Messaging● Loosely Coupled
WarehouseStore Front Order Queue
:-(
![Page 8: Instant Integration into the AMQP Cloud with Apache Qpid ...archive.apachecon.com/na2013/presentations/26-Tuesday/Tapping_… · Instant Integration into the AMQP Cloud with Apache](https://reader030.vdocuments.net/reader030/viewer/2022041021/5ed14257cd86a73bbf4f39a0/html5/thumbnails/8.jpg)
Messaging● Loosely Coupled
WarehousesStore Fronts Order Queue
![Page 9: Instant Integration into the AMQP Cloud with Apache Qpid ...archive.apachecon.com/na2013/presentations/26-Tuesday/Tapping_… · Instant Integration into the AMQP Cloud with Apache](https://reader030.vdocuments.net/reader030/viewer/2022041021/5ed14257cd86a73bbf4f39a0/html5/thumbnails/9.jpg)
Messaging● Message
– addresses are rendezvous points● flexible n – n communication topologies
– properties available for semantic routing
Properties
to: addresscolor: yellow
Body
...
![Page 10: Instant Integration into the AMQP Cloud with Apache Qpid ...archive.apachecon.com/na2013/presentations/26-Tuesday/Tapping_… · Instant Integration into the AMQP Cloud with Apache](https://reader030.vdocuments.net/reader030/viewer/2022041021/5ed14257cd86a73bbf4f39a0/html5/thumbnails/10.jpg)
Messaging
ConsumersProducers Queue
● Queues
![Page 11: Instant Integration into the AMQP Cloud with Apache Qpid ...archive.apachecon.com/na2013/presentations/26-Tuesday/Tapping_… · Instant Integration into the AMQP Cloud with Apache](https://reader030.vdocuments.net/reader030/viewer/2022041021/5ed14257cd86a73bbf4f39a0/html5/thumbnails/11.jpg)
Messaging
ConsumersProducers Queue
● Queues
![Page 12: Instant Integration into the AMQP Cloud with Apache Qpid ...archive.apachecon.com/na2013/presentations/26-Tuesday/Tapping_… · Instant Integration into the AMQP Cloud with Apache](https://reader030.vdocuments.net/reader030/viewer/2022041021/5ed14257cd86a73bbf4f39a0/html5/thumbnails/12.jpg)
Messaging
SubscribersPublishers Topic
● Topics
![Page 13: Instant Integration into the AMQP Cloud with Apache Qpid ...archive.apachecon.com/na2013/presentations/26-Tuesday/Tapping_… · Instant Integration into the AMQP Cloud with Apache](https://reader030.vdocuments.net/reader030/viewer/2022041021/5ed14257cd86a73bbf4f39a0/html5/thumbnails/13.jpg)
Messaging
SubscribersPublishers Topic
● Topics
![Page 14: Instant Integration into the AMQP Cloud with Apache Qpid ...archive.apachecon.com/na2013/presentations/26-Tuesday/Tapping_… · Instant Integration into the AMQP Cloud with Apache](https://reader030.vdocuments.net/reader030/viewer/2022041021/5ed14257cd86a73bbf4f39a0/html5/thumbnails/14.jpg)
Messaging
SubscribersPublishers Topic
● Topics
![Page 15: Instant Integration into the AMQP Cloud with Apache Qpid ...archive.apachecon.com/na2013/presentations/26-Tuesday/Tapping_… · Instant Integration into the AMQP Cloud with Apache](https://reader030.vdocuments.net/reader030/viewer/2022041021/5ed14257cd86a73bbf4f39a0/html5/thumbnails/15.jpg)
Messaging
EndpointsEndpoints Infrastructure
● Heterogeneous
![Page 16: Instant Integration into the AMQP Cloud with Apache Qpid ...archive.apachecon.com/na2013/presentations/26-Tuesday/Tapping_… · Instant Integration into the AMQP Cloud with Apache](https://reader030.vdocuments.net/reader030/viewer/2022041021/5ed14257cd86a73bbf4f39a0/html5/thumbnails/16.jpg)
Proprietary Messaging
EndpointsEndpoints Proprietary Infrastructure
![Page 17: Instant Integration into the AMQP Cloud with Apache Qpid ...archive.apachecon.com/na2013/presentations/26-Tuesday/Tapping_… · Instant Integration into the AMQP Cloud with Apache](https://reader030.vdocuments.net/reader030/viewer/2022041021/5ed14257cd86a73bbf4f39a0/html5/thumbnails/17.jpg)
Proprietary Messaging● difficult to port
– requires rewriting apps to different API
● difficult to integrate– requires app level bridging and translation
● platforms limited to vendor provided choices
![Page 18: Instant Integration into the AMQP Cloud with Apache Qpid ...archive.apachecon.com/na2013/presentations/26-Tuesday/Tapping_… · Instant Integration into the AMQP Cloud with Apache](https://reader030.vdocuments.net/reader030/viewer/2022041021/5ed14257cd86a73bbf4f39a0/html5/thumbnails/18.jpg)
AMQP 1.0● Ratified as an OASIS standard in Oct 2012
– Developed over several years by an industry working group including:
● Technology vendors– Axway Software, Huawei Technologies, IIT Software,
INETCO Systems, Kaazing, Microsoft, Mitre Corporation, Primeton Technologies, Progress Software, Red Hat, SITA, Software AG, Solace Systems, VMWare, WSO2, Zenika
● User firms– Back of America, Credit Suisse, Deutsche Boerse,
Goldman Sachs, JPMorgan Chase
![Page 19: Instant Integration into the AMQP Cloud with Apache Qpid ...archive.apachecon.com/na2013/presentations/26-Tuesday/Tapping_… · Instant Integration into the AMQP Cloud with Apache](https://reader030.vdocuments.net/reader030/viewer/2022041021/5ed14257cd86a73bbf4f39a0/html5/thumbnails/19.jpg)
AMQP 1.0● Concisely expresses core messaging
semantics– flow control
– settlement
– transactions
– data binding
● Suitable as a wire protocol for a wide range of message oriented applications
![Page 20: Instant Integration into the AMQP Cloud with Apache Qpid ...archive.apachecon.com/na2013/presentations/26-Tuesday/Tapping_… · Instant Integration into the AMQP Cloud with Apache](https://reader030.vdocuments.net/reader030/viewer/2022041021/5ed14257cd86a73bbf4f39a0/html5/thumbnails/20.jpg)
AMQP 1.0
EndpointsEndpoints AMQP EnabledInfrastructure
● AMQP Enabled Infrastucture
![Page 21: Instant Integration into the AMQP Cloud with Apache Qpid ...archive.apachecon.com/na2013/presentations/26-Tuesday/Tapping_… · Instant Integration into the AMQP Cloud with Apache](https://reader030.vdocuments.net/reader030/viewer/2022041021/5ed14257cd86a73bbf4f39a0/html5/thumbnails/21.jpg)
AMQP 1.0
EndpointsEndpoints AMQP EnabledInfrastructure
● Heterogeneous Infrastructure
![Page 22: Instant Integration into the AMQP Cloud with Apache Qpid ...archive.apachecon.com/na2013/presentations/26-Tuesday/Tapping_… · Instant Integration into the AMQP Cloud with Apache](https://reader030.vdocuments.net/reader030/viewer/2022041021/5ed14257cd86a73bbf4f39a0/html5/thumbnails/22.jpg)
AMQP 1.0
EndpointsEndpoints AMQP Cloud
● Standard + Secure = Open Deployments
![Page 23: Instant Integration into the AMQP Cloud with Apache Qpid ...archive.apachecon.com/na2013/presentations/26-Tuesday/Tapping_… · Instant Integration into the AMQP Cloud with Apache](https://reader030.vdocuments.net/reader030/viewer/2022041021/5ed14257cd86a73bbf4f39a0/html5/thumbnails/23.jpg)
AMQP 1.0 Implementations● Apache Qpid
– C++ and Java brokers
● Apache ActiveMQ– multiprotocol message broker
● Azure Service Bus– PaaS
● Swift MQ– JMS broker + client
● Rabbit MQ
![Page 24: Instant Integration into the AMQP Cloud with Apache Qpid ...archive.apachecon.com/na2013/presentations/26-Tuesday/Tapping_… · Instant Integration into the AMQP Cloud with Apache](https://reader030.vdocuments.net/reader030/viewer/2022041021/5ed14257cd86a73bbf4f39a0/html5/thumbnails/24.jpg)
Apache Qpid Proton● Proton is a protocol implementation
– Previous attempts to standardize messaging have been client/server based, i.e. RPC
– AMQP 1.0 is a protocol specification● Network oriented: Symmetric, Decentralized● Provides intermediated messaging semantics, but
does not restrict to hub and spoke topology● Not just a standard way to talk to a traditional
broker
– AMQP 1.0 makes a protocol implementation possible
![Page 25: Instant Integration into the AMQP Cloud with Apache Qpid ...archive.apachecon.com/na2013/presentations/26-Tuesday/Tapping_… · Instant Integration into the AMQP Cloud with Apache](https://reader030.vdocuments.net/reader030/viewer/2022041021/5ed14257cd86a73bbf4f39a0/html5/thumbnails/25.jpg)
Apache Qpid Proton● Traditional MOM transformed
– Traditional MOMs conflate both● store and forward infrastructure● specialized application behaviors
– special queues: last value, ring queues– message transformation
– Driven by Scalability and Standardization
● With AMQP 1.0, these features can be– distributed, scalable, heterogeneous
![Page 26: Instant Integration into the AMQP Cloud with Apache Qpid ...archive.apachecon.com/na2013/presentations/26-Tuesday/Tapping_… · Instant Integration into the AMQP Cloud with Apache](https://reader030.vdocuments.net/reader030/viewer/2022041021/5ed14257cd86a73bbf4f39a0/html5/thumbnails/26.jpg)
Apache Qpid Proton● Many things benefit from speaking AMQP
– A concise expression of a very general set of messaging semantics
● Flow control● Settlement● Transactions● Data binding
– Not everyone wants to implement all this down to the wire
![Page 27: Instant Integration into the AMQP Cloud with Apache Qpid ...archive.apachecon.com/na2013/presentations/26-Tuesday/Tapping_… · Instant Integration into the AMQP Cloud with Apache](https://reader030.vdocuments.net/reader030/viewer/2022041021/5ed14257cd86a73bbf4f39a0/html5/thumbnails/27.jpg)
Apache Qpid Proton● Goals
– Make it easy to speak AMQP● minimal dependencies● minimal threading assumptions● multilingual
– C, Java, Javascript– C Bindings in python, ruby, php, perl, ...
● multi-platform– Linux/unix, windows, android, iOS
![Page 28: Instant Integration into the AMQP Cloud with Apache Qpid ...archive.apachecon.com/na2013/presentations/26-Tuesday/Tapping_… · Instant Integration into the AMQP Cloud with Apache](https://reader030.vdocuments.net/reader030/viewer/2022041021/5ed14257cd86a73bbf4f39a0/html5/thumbnails/28.jpg)
Apache Qpid Proton
Server Logic
AMQPProtocol Engine
Server I/O
Client Application
AMQP MessengerAMQP
Protocol Engine
Client I/O
● Protocol Engine
![Page 29: Instant Integration into the AMQP Cloud with Apache Qpid ...archive.apachecon.com/na2013/presentations/26-Tuesday/Tapping_… · Instant Integration into the AMQP Cloud with Apache](https://reader030.vdocuments.net/reader030/viewer/2022041021/5ed14257cd86a73bbf4f39a0/html5/thumbnails/29.jpg)
Protocol Engine● NOT a traditional “RPC-like” pattern:
– protocol implementation does I/O● Coupled to OS interfaces, I/O strategy, threading
model
invoke()
encode()
write()
dispatch()
decode()
read()
App App
![Page 30: Instant Integration into the AMQP Cloud with Apache Qpid ...archive.apachecon.com/na2013/presentations/26-Tuesday/Tapping_… · Instant Integration into the AMQP Cloud with Apache](https://reader030.vdocuments.net/reader030/viewer/2022041021/5ed14257cd86a73bbf4f39a0/html5/thumbnails/30.jpg)
Protocol Engine● Engine pattern:
– application does I/O
– engine encapsulates protocol state● pure state machine, no dependencies, no callbacks
invoke() output() write() read()
Engine
input() dispatch()
Engine
App App
![Page 31: Instant Integration into the AMQP Cloud with Apache Qpid ...archive.apachecon.com/na2013/presentations/26-Tuesday/Tapping_… · Instant Integration into the AMQP Cloud with Apache](https://reader030.vdocuments.net/reader030/viewer/2022041021/5ed14257cd86a73bbf4f39a0/html5/thumbnails/31.jpg)
Protocol Engine● Engine interface: “top” and “bottom” half
– Top half● traditional protocol interface in non blocking form
– establish senders and receivers, send/recv message data
– Bottom half● transport interface, inverted
– normal transport pushes bytes to a socket– inverted transport pulls bytes from the engine
Engine
Top Half Bottom Half
![Page 32: Instant Integration into the AMQP Cloud with Apache Qpid ...archive.apachecon.com/na2013/presentations/26-Tuesday/Tapping_… · Instant Integration into the AMQP Cloud with Apache](https://reader030.vdocuments.net/reader030/viewer/2022041021/5ed14257cd86a73bbf4f39a0/html5/thumbnails/32.jpg)
Protocol Engine● Echo Server
Echo EngineBytes Out = Bytes In
Bytes In Bytes Out
![Page 33: Instant Integration into the AMQP Cloud with Apache Qpid ...archive.apachecon.com/na2013/presentations/26-Tuesday/Tapping_… · Instant Integration into the AMQP Cloud with Apache](https://reader030.vdocuments.net/reader030/viewer/2022041021/5ed14257cd86a73bbf4f39a0/html5/thumbnails/33.jpg)
Protocol Engine● Echo Server
Echo EngineBytes Out = Bytes In
Bytes In Bytes Out
Query Interface
![Page 34: Instant Integration into the AMQP Cloud with Apache Qpid ...archive.apachecon.com/na2013/presentations/26-Tuesday/Tapping_… · Instant Integration into the AMQP Cloud with Apache](https://reader030.vdocuments.net/reader030/viewer/2022041021/5ed14257cd86a73bbf4f39a0/html5/thumbnails/34.jpg)
Protocol Engine● Request/Response Server
Request/Response EngineBytes Out = F(Bytes In)
Bytes In Bytes Out
Query Interface
![Page 35: Instant Integration into the AMQP Cloud with Apache Qpid ...archive.apachecon.com/na2013/presentations/26-Tuesday/Tapping_… · Instant Integration into the AMQP Cloud with Apache](https://reader030.vdocuments.net/reader030/viewer/2022041021/5ed14257cd86a73bbf4f39a0/html5/thumbnails/35.jpg)
Protocol Engine● Request/Response Server
Request/Response EngineBytes Out = Ctl(Bytes In)
Bytes In Bytes Out
Query/Control Interface
![Page 36: Instant Integration into the AMQP Cloud with Apache Qpid ...archive.apachecon.com/na2013/presentations/26-Tuesday/Tapping_… · Instant Integration into the AMQP Cloud with Apache](https://reader030.vdocuments.net/reader030/viewer/2022041021/5ed14257cd86a73bbf4f39a0/html5/thumbnails/36.jpg)
Protocol Engine● Generalized Server
Generalized EngineBytes Out = F(Bytes In, Ctl)
Bytes In Bytes Out
Query/Control Interface
![Page 37: Instant Integration into the AMQP Cloud with Apache Qpid ...archive.apachecon.com/na2013/presentations/26-Tuesday/Tapping_… · Instant Integration into the AMQP Cloud with Apache](https://reader030.vdocuments.net/reader030/viewer/2022041021/5ed14257cd86a73bbf4f39a0/html5/thumbnails/37.jpg)
Protocol Engine● Generalized Endpoint
Generalized EngineBytes Out = F(Bytes In, Ctl)
Bytes In Bytes Out
Query/Control Interface
![Page 38: Instant Integration into the AMQP Cloud with Apache Qpid ...archive.apachecon.com/na2013/presentations/26-Tuesday/Tapping_… · Instant Integration into the AMQP Cloud with Apache](https://reader030.vdocuments.net/reader030/viewer/2022041021/5ed14257cd86a73bbf4f39a0/html5/thumbnails/38.jpg)
Protocol Engine● Generalized AMQP Engine
Transport(Bottom Half)
Bytes Out = F(Bytes In, Ctl)Bytes In Bytes Out
Stateful Query/Control Interface
AMQP Connection(Top Half)
bind/unbind
![Page 39: Instant Integration into the AMQP Cloud with Apache Qpid ...archive.apachecon.com/na2013/presentations/26-Tuesday/Tapping_… · Instant Integration into the AMQP Cloud with Apache](https://reader030.vdocuments.net/reader030/viewer/2022041021/5ed14257cd86a73bbf4f39a0/html5/thumbnails/39.jpg)
Protocol Engine● Benefit: flexibility
– Single protocol implementation can be shared● Used in a simple client● Easy to embed into existing servers
– Thread agnostic● works with single threaded and multithreaded
servers of any architecture
– Easy to swig● pure data structure● no callbacks● simple interface
![Page 40: Instant Integration into the AMQP Cloud with Apache Qpid ...archive.apachecon.com/na2013/presentations/26-Tuesday/Tapping_… · Instant Integration into the AMQP Cloud with Apache](https://reader030.vdocuments.net/reader030/viewer/2022041021/5ed14257cd86a73bbf4f39a0/html5/thumbnails/40.jpg)
Protocol Engine
EndpointsEndpoints AMQP Cloud
● Multiplatform + Multilingual = Protons Everywhere
+
+
+
+
+
+
+ ++ +
+ +
![Page 41: Instant Integration into the AMQP Cloud with Apache Qpid ...archive.apachecon.com/na2013/presentations/26-Tuesday/Tapping_… · Instant Integration into the AMQP Cloud with Apache](https://reader030.vdocuments.net/reader030/viewer/2022041021/5ed14257cd86a73bbf4f39a0/html5/thumbnails/41.jpg)
Messenger
messenger = Messenger()
messenger.start()
msg = Message()msg.address = "0.0.0.0"msg.body = u"Hello World!"
messenger.put(msg)messenger.send()
messenger.stop()
messenger = Messenger()messenger.subscribe("~0.0.0.0")messenger.start()
msg = Message()
while True: messenger.recv() while messenger.incoming: messenger.get(msg) print msg.body
messenger.stop()
Sending Receiving
![Page 42: Instant Integration into the AMQP Cloud with Apache Qpid ...archive.apachecon.com/na2013/presentations/26-Tuesday/Tapping_… · Instant Integration into the AMQP Cloud with Apache](https://reader030.vdocuments.net/reader030/viewer/2022041021/5ed14257cd86a73bbf4f39a0/html5/thumbnails/42.jpg)
Messenger● Message oriented, not connection oriented
– (re) creates and pools the minimal number of connections behind the scenes
● simplifies failover
– topology is invisible to application
● Simple, but not a toy– batch oriented interface
● high performance
![Page 43: Instant Integration into the AMQP Cloud with Apache Qpid ...archive.apachecon.com/na2013/presentations/26-Tuesday/Tapping_… · Instant Integration into the AMQP Cloud with Apache](https://reader030.vdocuments.net/reader030/viewer/2022041021/5ed14257cd86a73bbf4f39a0/html5/thumbnails/43.jpg)
Messenger
messenger = Messenger()
messenger.outgoing_window = 100messenger.start()
msg = Message()msg.address = "0.0.0.0"msg.body = u"Hello World!"
tracker = messenger.put(msg)messenger.send()print messenger.status(tracker)
messenger.stop()
messenger = Messenger()messenger.subscribe("~0.0.0.0")messenger.start()
msg = Message()
while True: messenger.recv() while messenger.incoming: messenger.get(msg) print msg.body messenger.accept()
messenger.stop()
Sending Reliably Receiving Reliably
![Page 44: Instant Integration into the AMQP Cloud with Apache Qpid ...archive.apachecon.com/na2013/presentations/26-Tuesday/Tapping_… · Instant Integration into the AMQP Cloud with Apache](https://reader030.vdocuments.net/reader030/viewer/2022041021/5ed14257cd86a73bbf4f39a0/html5/thumbnails/44.jpg)
Message● mutable and reusable holder of content
– works with batch send● more performance
– doesn't conflate delivery with message● flexible: modify a received message and resend it
● data binding from AMQP to native types● usable with Messenger or Engine
![Page 45: Instant Integration into the AMQP Cloud with Apache Qpid ...archive.apachecon.com/na2013/presentations/26-Tuesday/Tapping_… · Instant Integration into the AMQP Cloud with Apache](https://reader030.vdocuments.net/reader030/viewer/2022041021/5ed14257cd86a73bbf4f39a0/html5/thumbnails/45.jpg)
Demo
Messenger(Python)
Order DB
Order Queue (Service Bus)
Order Queue (Active MQ)
Order Tracking(PHP)
submit
update
![Page 46: Instant Integration into the AMQP Cloud with Apache Qpid ...archive.apachecon.com/na2013/presentations/26-Tuesday/Tapping_… · Instant Integration into the AMQP Cloud with Apache](https://reader030.vdocuments.net/reader030/viewer/2022041021/5ed14257cd86a73bbf4f39a0/html5/thumbnails/46.jpg)
Summary● AMQP 1.0 is a new kind of messaging
– brings messaging to the masses
● Proton– The AMQP Protocol Engine
● advanced architecture● based on years of enterprise experience
– The AMQP Messenger API● simple but powerful programming API
● This is the basis of next gen applications
![Page 47: Instant Integration into the AMQP Cloud with Apache Qpid ...archive.apachecon.com/na2013/presentations/26-Tuesday/Tapping_… · Instant Integration into the AMQP Cloud with Apache](https://reader030.vdocuments.net/reader030/viewer/2022041021/5ed14257cd86a73bbf4f39a0/html5/thumbnails/47.jpg)
More Information● http://qpid.apache.org/proton● [email protected]● http://www.amqp.org