SlideShare a Scribd company logo
1 of 66
CamelOne 2013	

June 10-11 2013	

Boston, MA	

1	

Connecting Applications
Everywhere with
ActiveMQ	

Rob Davies	

Technical Director, Fuse Engineering,	

Red Hat Inc.
CamelOne 2013	

CamelOne	

2	

Rob Davies
Technical Director, Red Hat -
h"p://www.redhat.com	

■  Previously CTO of FuseSource - #1 OS
vendor for integration and messaging 	

■  Software projects:	

■  Apache ActiveMQ, 	

■  Apache Camel	

■  Apache ServiceMix	

■  On	
  Expert	
  Group	
  for	
  JSR	
  343:	
  JMS	
  2.0	
  
■  Co-­‐author	
  of	
  AcCveMQ	
  in	
  AcCon:	
  
CamelOne 2013	

CamelOne	

 Why use Message-
Oriented Middleware?	

  Robustness	
  to	
  change	
  
  Time	
  Independence	
  
  LocaCon	
  Independence	
  
  Hide	
  Latency	
  
  Scalability	
  
  Event	
  driven	
  
  Simplicity	
  
  Configurable	
  Quality	
  of	
  Service	
  
  PlaRorm	
  and	
  Language	
  IntegraCon	
  
  Fault	
  tolerant	
  	
  
CamelOne 2013	

CamelOne	

4	

What is Apache ActiveMQ ?
■ Top Level Apache Software Foundation Project	

■ Wildly popular, high performance, reliable message
broker	

■ Connects to nearly everything	

■ Native Java, C/C++, .Net,	

■ AMQP 1.0, MQTT 3.1, STOMP (1.0-1.2) and
OpenWire	

■ STOMP enables Ruby, JS, Perl, Python, PHP,
ActionScript …	

■ Embedded and standalone deployment options
CamelOne 2013	

CamelOne	

Messaging: 	

The Basics
CamelOne 2013	

CamelOne	

Message Channels and
Routing	

•  Message Channels	

•  Named communication between interested parties	

•  JMS calls them ‘Destinations’	

•  Can “tune-in” to multiple channels using wildcards	

•  Can fine-tune message consumption with selectors 	

•  Can route a message based on content
CamelOne 2013	

CamelOne	

Message Channels = JMS Destinations	

Producer	

Broker	

 Consumer	

Consumer	

Consumer	

Destination	

WIDGET	

Destination	

ORDER
CamelOne 2013	

CamelOne	

Point-toPoint Channel: JMS Queues	

Producer	

Consumer	

Consumer	

Consumer	

Queue
CamelOne 2013	

CamelOne	

Publish/Subscribe Channel: JMS Topics	

Producer	

Consumer	

Consumer	

Consumer	

Topic
CamelOne 2013	

CamelOne	

 Message Routing :
Selectors 	

DestinationProducer
Consumer
color='blue'
Consumer
color='red'
CamelOne 2013	

CamelOne	

 Message Routing : Destination
Wildcards	

Topic:
BAR.BEER
Consumer
topic:BAR.>
Topic:
BAR.WINE
Producer
CamelOne 2013	

CamelOne	

Exclusive Consumers	

Producer	

Consumer	

Consumer	

Consumer	

Queue
CamelOne 2013	

CamelOne	

Message Groups	

Like Parallel Exclusive Consumers	

■ Guaranteed ordering of related messages across a
Queue	

■ But – load balancing of messages across multiple
consumers	

■ All messages with the same JMSXGroupID go to
the same consumer 	

■ How you group messages is down to the application’s
producer	

■ To explicitly close a group, set the JMSXGroupSeq
to -1	

	

 13
CamelOne 2013	

CamelOne	

14	

Message Groups code:	

Message message = session.createTextMessage("<foo>hi from Devoxx</foo>");	

message.setStringProperty("JMSXGroupID", ”RHT_NYSE");	

producer.send(message);
	

Message message = session.createTextMessage(foobye from Devoxx/foo);	

message.setStringProperty(JMSXGroupID, ”RHT_NYSE);	

message.setStringProperty(JMSXGroupSeq, -1);	

producer.send(message);




//Starting a Group …
//Close a Group …
CamelOne 2013	

CamelOne	

Deploying ActiveMQ	

ActiveMQ Can run standalone or embedded	

■ As a standalone, or part of a highly available message
broker cluster	

■ Embedded – easy to use an entire broker in JUnit tests
(no need to Mock)	

■ In Tomcat, deployed as a war	

■ In JEE Server – either co-locate – or use client with JCA	

■ ActiveMQ distributions contain a rar for this purpose	

15
CamelOne 2013	

CamelOne	

ActiveMQ: 	

Message Storage
CamelOne 2013	

CamelOne	

Message Delivery Mode	

•  Messages can be persisted – allowing for
decoupled applications	

•  For Queues, any message delivered as
PERSISTENT must be stored on long term storage
before being delivered to a consumer	

•  For Topics, a message delivered as PERSISTENT
will only be stored if there exists a durable subscriber	

•  NON-PERSISTENT messages may also be stored
on disk if the memory limits of the broker have been
reached	

17
CamelOne 2013	

CamelOne	

 Message stores supported by
ActiveMQ 	

■ SQL (JDBC)	

■ SQL (JDBC) with journal	

■ AMQ Message Store	

■ Kaha	

■ KahaDB	

■ LevelDB	

18	

Slow but
popular
	

Don’t use
(deprecated)
	

The “current”
default
	

The “best yet”
CamelOne 2013	

CamelOne	

LevelDB Store vs KahaDB	

•  Fewer index entries per message than KahaDB	

•  Faster recovery when a broker restarts	

•  LevelDB index out-perform Btree index at sequential access .	

•  LevelDB indexes support concurrent read access.	

•  Pauseless data log file garbage collection cycles.	

•  Fewer IOPS to load stored messages.	

•  It exposes it's status via JMX for monitoring
CamelOne 2013	

CamelOne	

ActiveMQ: LevelDB Store
CamelOne 2013	

CamelOne	

ActiveMQ: 	

Protocols
CamelOne 2013	

CamelOne	

OpenWire 	

Advantages:	

•  Fast – optimized for
ActiveMQ	

•  client failover	

•  automatic reconnect	

•  Client load balancing	

•  Flow control	

•  Many advanced features	

22	

Disadvantages:	

	

•  Not a recognized
standard	

•  Only Java, C/C++/.Net	

http://activemq.apache.org/openwire.html
CamelOne 2013	

CamelOne	

MQTT http://mqtt.org	

Advantages:	

•  M2M/”Internet of Things” transport	

•  Proposed as an OASIS standard	

•  Extremely light weight	

•  Growing support from vendors and OS
products	

•  WebSphereMQ	

•  ActiveMQ + Apollo	

•  Mosquitto	

•  RabbitMQ	

23	

Disadvantages:	

•  3.1 does not support
Queues	

•  Advanced features not
standard	

•  Flow control	

•  Failover etc.
CamelOne 2013	

CamelOne	

AMQP – see www.amqp.org	

Advantages:	

•  AMQP 1.0 OASIS
standard	

•  Proposed as an OASIS
standard	

•  Commoditizes the
Broker	

24	

Disadvantages:	

•  One size doesn’t really fit
all	

•  Currently no plans for IBM
or Tibco to adopt it
CamelOne 2013	

CamelOne	

STOMP – http://stomp.github.com	

Advantages:	

•  Easy to use text based
protocol	

•  Can use telnet as a client	

•  Defacto standard:	

•  ActiveMQ + Apollo	

•  HornetQ	

•  RabbitMQ	

•  PocoMQ	

•  StompServer	

•  OpenMQ	

•  Many more …	

25	

Disadvantages:	

•  Not as fast as binary
formats
CamelOne 2013	

CamelOne	

But there’s more: WebSockets	

STOMP is a natural wire protocol for WebSockets	

26	

ActiveMQ
Client
(Browser)
WebSocket
Connector
Stomp
Converter
ActiveMQ
(Backend)
TCP
(WebSocket)
HTTP(S)
Request/Response
1. HTTP Request (Upgrade)
2. HTTP Response
4. Message received
from Topic
5. Send WebSocket
Data
3. Stomp Subscribe
CamelOne 2013	

CamelOne	

ActiveMQ: 	

Management
CamelOne 2013	

CamelOne	

Command line:	

•  Activemq	

•  activemq-admin	

•  activemq-admin stop	

•  activemq-admin query	

•  activemq-admin bstat	

•  activemq-admin
browse	

•  activemq-admin list	

28	

Runs the
broker
	

Manages the
broker
CamelOne 2013	

CamelOne	

ActiveMQ WebConsole	

http://localhost:8161/admin	

29
CamelOne 2013	

CamelOne	

Introducing hawtio …	

30
CamelOne 2013	

CamelOne	

ActiveMQ: 	

Enterprise
Features
CamelOne 2013	

CamelOne	

High Availability	

ActiveMQ	

Cluster	

ActiveMQ Client	

Supported by both Java and C++ OpenWire clients
CamelOne 2013	

CamelOne	

Broker Networks (Store and
Forward)
CamelOne 2013	

CamelOne	

 Network of Brokers : Geographically
Dispersed
CamelOne 2013	

CamelOne	

Network of Brokers : Network with Master/Slave
CamelOne 2013	

CamelOne	

Scaling Networks of Brokers	

•  Brokers share routing information across networks	

•  All destinations are considered Global	

•  This is really convenient	

•  Though it starts to get problematic with 1000’s of
brokers	

•  However – we can do filtering to shape the traffic
across networks 	

•  But this involves a lot of manual configuration 	

36	

 crikey!
	


	


	


CamelOne 2013	

CamelOne	

•  Brokers share routing information across networks	

•  All destinations are considered Global	

•  This is really convenient	

•  Though it starts to get problematic with 1000’s of
brokers	

•  However – we can do filtering to shape the traffic
across networks 	

•  But this involves a lot of manual configuration 	

37	

Time to talk about
Apache Camel …
	

Scaling Networks of Brokers
CamelOne 2013	

CamelOne	

ActiveMQ with embedded Camel	

Service
Consumer
Consumer
ActiveMQ Broker
Flexible and is faster J
CamelOne 2013	

CamelOne	

39	

ActiveMQ with embedded Camel	

beans	

   broker brokerName=testBroker  xmlns=http://activemq.apache.org/schema/core	

    transportConnectors	

      transportConnector uri=tcp://localhost:61616/	

    /transportConnectors	

  /broker	

  import resource=camel.xml/	

/beans	

Import Camel into ActiveMQ broker config:
CamelOne 2013	

CamelOne	

40	

Setup Camel Context in the
usual way	

beans	

…	

camelContext id=camel xmlns=http://camel.apache.org/schema/spring	

route	

	

descriptionExample Camel Route/description	

	

from uri=activemq:topic:audio/	

	

setHeader headerName=JMS_AMQP_MESSAGE_FORMAT	

	

 	

constant0/constant	

	

/setHeader	

	

to uri=activemq:queue:audio/	

/route	

/camelContext	

…	

/beans
CamelOne 2013	

CamelOne	

Scaling Networks – use Apache Camel	

•  Allows for non-chatty networks to be
established 	

•  Routing information can be externalized to
the broker	

•  Successfully used in production for 1000’s
of brokers today	

41
CamelOne 2013	

CamelOne	

More problems
with Large
Deployments
CamelOne 2013	

CamelOne	

 Problems – Deploying and
maintenance	

•  Main problems	

•  Installing brokers on multiple hosts	

•  ssh, untar, set directories and environment	

•  Setting configuration manually for every broker	

•  copying xml config, tweaking, testing	

•  Updating configuration across cluster	

•  Upgrading brokers	

It’s a tedious and error-prone process
CamelOne 2013	

CamelOne	

 Problems – Traditional best-
practice tips	

•  Keep XML as a template and configure node-specific
details through properties	

•  Keep configuration in SVC system (git, svn, ...)	

•  Keep configuration separate from installation for
easier upgrades	

Deployment with Fuse Fabric moves it to the next
level
CamelOne 2013	

CamelOne	

Problems - Clients	

•  Topology is very “static”	

•  Clients need to be aware of topology	

•  Clients need to know broker locations	

•  Changes are not easy as clients need to be updated	

•  Adding new resources (brokers) requires client updates	

•  Not suitable for “cloud” deployments	

Fuse Fabric makes deployments more “elastic”
CamelOne 2013	

CamelOne	

Fuse Fabric to
the rescue!
CamelOne 2013	

CamelOne	

Fuse Fabric – Key Features	

Fuse	
  IDE	
  	
   hawCo	
  
ActiveMQ	

Cluster	

Camel	

Endpoints	

ServiceMix	

Runtime 	

Registry	

•  Supports Hybrid deployments	

•  Distributed Configuration	

•  Runtime registry	

•  Centralized Management
CamelOne 2013	

CamelOne	

FuseMQ features	

•  mq-base profile	

•  Defines OSGi features and bundles to be installed	

•  Defines basic broker settings	

•  mq-create command	

•  Helper command for creating brokers	

•  Creates an new profile based on mq-base	

•  Optionally creates new containers	

•  Assigns the profile to containers (essentially starts the broker)	

FuseMQ = ActiveMQ deployed in Apache Karaf +
CamelOne 2013	

CamelOne	

 Why is Integration and
Messaging Important ?	

Head Office
Enterprises
Need to
know
Everything!
CamelOne 2013	

CamelOne	

 There are more things to
Integrate with!
CamelOne 2013	

CamelOne	

The Internet of Things	

•  Uniquely identifiable objects and their virtual
representations in an internet-like structure	

•  Originally defined by Kevin Ashton, co-founder of
Auto-ID center at MIT	

•  Today its meaning has evolved to encompass a
world where physical objects are integrated into the
information network, and where physical objects
participate in business processes.	

51
CamelOne 2013	

CamelOne	

Machine to Machine	

•  M2M involves collection and transmission of event
level data (used to be called telemetry) from
intelligent devices	

•  Machines can interact over the net – and/or
attached networks – by wired and wireless
networks	

•  Payloads are typically minimal (temperature,
pressure, location, metering etc.)	

52
CamelOne 2013	

CamelOne	

Internet of Things	

Time	
  
Connected	
  Devices	
  on	
  the	
  
internet	
  
2010	
  2000	
   2020	
  
1	
  Billion	
  
50	
  Billion	
  
10	
  	
  Billion	
  
Ubiquitous	
  
posiConing	
  –	
  
locaCng	
  people	
  and	
  
everyday	
  objects	
  	
  
RFID	
  tags	
  for	
  
Inventory	
  control	
  
Advanced	
  sensors,	
  
Enterprises	
  fully	
  
connected:	
  integraCon	
  
of	
  everything	
  
Geo-­‐located	
  devices	
  
Microcontrollers	
  
internet	
  enabled	
  
Vending	
  machines,	
  lone	
  
workers,	
  POS,	
  vehicles,	
  
planes,	
  tolls,	
  power	
  
systems,	
  transport,	
  
telemedicine,	
  	
  home	
  
appliances,	
  power	
  
systems,	
  etc.	
  
CamelOne 2013	

CamelOne	

M2M Examples	

•  Smart Energy –	

Smart Grid uses smart meters for monitoring energy uses by premises for billing,
substation and transmission line monitoring, energy production (renewables)	

•  Inventory Control –	

smart labels and RFID tags – connected scanners pass information upstream to
servers for monitoring	

•  In-Vehicle Systems	

Maintenance information, global positioning, ‘black-box’ (speed and driving
habits), wireless payments for tolls/gas	

•  Environmental Monitoring	

Weather stations (temperature, air-pressure), ocean monitors, earth
movements, volcanic activity crop yields etc.	

•  Livestock monitoring	

Cow herds, monitored for optimum time for milking, sheep herds for location	

54
CamelOne 2013	

CamelOne	

M2M Topology	

55	

Gateway	

Hadoop	

	

	

Servers	

Analytics	

Gateway	

Internet	

Mesh Network	

Mobile wireless
CamelOne 2013	

CamelOne	

Power Consumption!	

•  Battery life for mobiles, power consumption for
smart devices is an important consideration.	

•  Facebook use MQTT for real-time updates –
efficiency was one of the things considered	

•  MQTT is more efficient at establishing connections,
sends information more reliably, and consumes less
power to transmit data than HTTP.	

56
CamelOne 2013	

CamelOne	

Deluge of Data	

•  Billions of devices send information will require
storage and processing of terabytes or even
petabytes of data.	

•  Big Data Ingestion: Processing of vast amounts of
data business generates to make good decisions is
only half the problem. Ingesting that data from all
areas of the enterprise will require TBs of data to be
ingested in highly reliable and scalable way. 	

57
CamelOne 2013	

CamelOne	

Need an Eco system of technologies 	

Dev	

•  Integration is getting harder	

•  Traditional message brokers are
key to connect “everything”	

•  Multiple protocols need to be
supported	

•  Camel can provide integration at
the edges – and the data center	

•  Technologies like Fuse Fabric
provide centralized provisioning and
management	

•  Need to mix protocols, brokers and
“message routers” to scale 	

	

	

FuseMQ	

Clusters	

Arrival
Airport 1
CamelOne 2013	

CamelOne	

Demo Time!
CamelOne 2013	

CamelOne	

 Messaging through the Internet of
Things	

	

	

ActiveMQ	

AMQP/MQTT	

routers	

AMQP/MQTT	

routers	

AMQP/MQTT	

routers	

MQTT	
  
MQTT-­‐S	
  
AMQP	
  
AMQP	
  
AMQP	
  
MQTT	
  
MQTT	
  
websockets	
  
CamelOne 2013	

CamelOne	

Simplified demo	

Java MQTT Client	

AMQP	
  
MQTT	
  
ActiveMQ	

MQTT/AMQP	

Gateway	

ActiveMQ	

AMQP/OpenWire	

Broker	

 JMS OpenWire Client
CamelOne 2013	

CamelOne	

What is Arduino ?	

•  Open Source Hardware microcontroller	

•  Cheap and easily available.	

•  Open Source Software.	

•  Widespread: many projects.	

•  Extra HW (shields) available (e.g. WiFi shield)
CamelOne 2013	

CamelOne	

63	
  
USB
7-12 v
3 v GRD 5 v Analog Input Pins
Digital Input/Output Pins
Pins with ~ are PWM
[Analog Output]
GRD
Transmitter/Receiver
Serial Connection
Microcontroller ATmega328 	

OperatingVoltage 5V 	

InputVoltage (recommended)7-12V 	

InputVoltage (limits)6-20V 	

Digital I/O Pins 14 	

(of which 6 provide PWM output) 	

Analog Input Pins 6 	

DC Current per I/O Pin 40 mA 	

DC Current for 3.3V Pin 50 mA
CamelOne 2013	

CamelOne	

Arduino Programming	

•  3 types of memory on Arduino	

•  Flash memory (program space) – 32 Kb	

•  SRAM – used by sketches – 2 Kb	

•  EPROM – long term memory – 1 Kb	

•  Programming language based on Wiring: C/C++ library
designed to make input/output easier. Programs are
called sketches.	

•  Arduino has a simple IDE, available on Windows, Linux
and Mac
CamelOne 2013	

CamelOne	

Arduino MQTT to WebSockets	

Arduino 	

AMQP	
  
MQTT	
  
ActiveMQ	

MQTT/AMQP	

Gateway	

ActiveMQ	

AMQP/WebSockets	

Broker	

 HTML 5/WebSockets
CamelOne 2013	

CamelOne	

Useful Resources:	

•  http://activemq.apache.org	

•  http://camel.apache.org 	

•  http://fuse.fusesource.org/fabric/docs/overview.html	

•  http://fuse.fusesource.org/mq/docs/mq-fabric.html	

•  https://github.com/fusesource/fuseide	

•  http://hawt.io	

•  http://www.arduino.cc/	

Messaging and
Integration
Developer tooling
Management
Configuration and
provisioning
Arduino

More Related Content

What's hot

LoadBalancer using KeepAlived
LoadBalancer using KeepAlivedLoadBalancer using KeepAlived
LoadBalancer using KeepAlivedKhushalChandak1
 
Data Loss and Duplication in Kafka
Data Loss and Duplication in KafkaData Loss and Duplication in Kafka
Data Loss and Duplication in KafkaJayesh Thakrar
 
Whats new in MQ V9.1
Whats new in MQ V9.1Whats new in MQ V9.1
Whats new in MQ V9.1David Ware
 
Deploy Secure and Scalable Services Across Kubernetes Clusters with NATS
Deploy Secure and Scalable Services Across Kubernetes Clusters with NATSDeploy Secure and Scalable Services Across Kubernetes Clusters with NATS
Deploy Secure and Scalable Services Across Kubernetes Clusters with NATSNATS
 
IBM MQ - High Availability and Disaster Recovery
IBM MQ - High Availability and Disaster RecoveryIBM MQ - High Availability and Disaster Recovery
IBM MQ - High Availability and Disaster RecoveryMarkTaylorIBM
 
Oracle WebLogic Server Basic Concepts
Oracle WebLogic Server Basic ConceptsOracle WebLogic Server Basic Concepts
Oracle WebLogic Server Basic ConceptsJames Bayer
 
Java SE 8 技術手冊第 1 章 - Java平台概論
Java SE 8 技術手冊第 1 章 - Java平台概論Java SE 8 技術手冊第 1 章 - Java平台概論
Java SE 8 技術手冊第 1 章 - Java平台概論Justin Lin
 
Asp.Net Identity
Asp.Net IdentityAsp.Net Identity
Asp.Net IdentityMarwa Ahmad
 
[NEW LAUNCH!] Introducing Amazon Managed Streaming for Kafka (Amazon MSK) (AN...
[NEW LAUNCH!] Introducing Amazon Managed Streaming for Kafka (Amazon MSK) (AN...[NEW LAUNCH!] Introducing Amazon Managed Streaming for Kafka (Amazon MSK) (AN...
[NEW LAUNCH!] Introducing Amazon Managed Streaming for Kafka (Amazon MSK) (AN...Amazon Web Services
 
IBM MQ Update, including 9.1.2 CD
IBM MQ Update, including 9.1.2 CDIBM MQ Update, including 9.1.2 CD
IBM MQ Update, including 9.1.2 CDDavid Ware
 
Parallel batch processing with spring batch slideshare
Parallel batch processing with spring batch   slideshareParallel batch processing with spring batch   slideshare
Parallel batch processing with spring batch slideshareMorten Andersen-Gott
 
Spring boot Introduction
Spring boot IntroductionSpring boot Introduction
Spring boot IntroductionJeevesh Pandey
 
Quarkus tips, tricks, and techniques
Quarkus tips, tricks, and techniquesQuarkus tips, tricks, and techniques
Quarkus tips, tricks, and techniquesRed Hat Developers
 
How is Kafka so Fast?
How is Kafka so Fast?How is Kafka so Fast?
How is Kafka so Fast?Ricardo Paiva
 
Kubecon 2023 EU - KServe - The State and Future of Cloud-Native Model Serving
Kubecon 2023 EU - KServe - The State and Future of Cloud-Native Model ServingKubecon 2023 EU - KServe - The State and Future of Cloud-Native Model Serving
Kubecon 2023 EU - KServe - The State and Future of Cloud-Native Model ServingTheofilos Papapanagiotou
 
Performance testing using jmeter
Performance testing using jmeterPerformance testing using jmeter
Performance testing using jmeterRachappa Bandi
 
Apache Kafka Architecture & Fundamentals Explained
Apache Kafka Architecture & Fundamentals ExplainedApache Kafka Architecture & Fundamentals Explained
Apache Kafka Architecture & Fundamentals Explainedconfluent
 
VM Job Queues in CloudStack
VM Job Queues in CloudStackVM Job Queues in CloudStack
VM Job Queues in CloudStackShapeBlue
 

What's hot (20)

LoadBalancer using KeepAlived
LoadBalancer using KeepAlivedLoadBalancer using KeepAlived
LoadBalancer using KeepAlived
 
Data Loss and Duplication in Kafka
Data Loss and Duplication in KafkaData Loss and Duplication in Kafka
Data Loss and Duplication in Kafka
 
Whats new in MQ V9.1
Whats new in MQ V9.1Whats new in MQ V9.1
Whats new in MQ V9.1
 
Deploy Secure and Scalable Services Across Kubernetes Clusters with NATS
Deploy Secure and Scalable Services Across Kubernetes Clusters with NATSDeploy Secure and Scalable Services Across Kubernetes Clusters with NATS
Deploy Secure and Scalable Services Across Kubernetes Clusters with NATS
 
Quantum & AI in Finance
Quantum & AI in FinanceQuantum & AI in Finance
Quantum & AI in Finance
 
IBM MQ - High Availability and Disaster Recovery
IBM MQ - High Availability and Disaster RecoveryIBM MQ - High Availability and Disaster Recovery
IBM MQ - High Availability and Disaster Recovery
 
Oracle WebLogic Server Basic Concepts
Oracle WebLogic Server Basic ConceptsOracle WebLogic Server Basic Concepts
Oracle WebLogic Server Basic Concepts
 
Java SE 8 技術手冊第 1 章 - Java平台概論
Java SE 8 技術手冊第 1 章 - Java平台概論Java SE 8 技術手冊第 1 章 - Java平台概論
Java SE 8 技術手冊第 1 章 - Java平台概論
 
WebLogic FAQs
WebLogic FAQsWebLogic FAQs
WebLogic FAQs
 
Asp.Net Identity
Asp.Net IdentityAsp.Net Identity
Asp.Net Identity
 
[NEW LAUNCH!] Introducing Amazon Managed Streaming for Kafka (Amazon MSK) (AN...
[NEW LAUNCH!] Introducing Amazon Managed Streaming for Kafka (Amazon MSK) (AN...[NEW LAUNCH!] Introducing Amazon Managed Streaming for Kafka (Amazon MSK) (AN...
[NEW LAUNCH!] Introducing Amazon Managed Streaming for Kafka (Amazon MSK) (AN...
 
IBM MQ Update, including 9.1.2 CD
IBM MQ Update, including 9.1.2 CDIBM MQ Update, including 9.1.2 CD
IBM MQ Update, including 9.1.2 CD
 
Parallel batch processing with spring batch slideshare
Parallel batch processing with spring batch   slideshareParallel batch processing with spring batch   slideshare
Parallel batch processing with spring batch slideshare
 
Spring boot Introduction
Spring boot IntroductionSpring boot Introduction
Spring boot Introduction
 
Quarkus tips, tricks, and techniques
Quarkus tips, tricks, and techniquesQuarkus tips, tricks, and techniques
Quarkus tips, tricks, and techniques
 
How is Kafka so Fast?
How is Kafka so Fast?How is Kafka so Fast?
How is Kafka so Fast?
 
Kubecon 2023 EU - KServe - The State and Future of Cloud-Native Model Serving
Kubecon 2023 EU - KServe - The State and Future of Cloud-Native Model ServingKubecon 2023 EU - KServe - The State and Future of Cloud-Native Model Serving
Kubecon 2023 EU - KServe - The State and Future of Cloud-Native Model Serving
 
Performance testing using jmeter
Performance testing using jmeterPerformance testing using jmeter
Performance testing using jmeter
 
Apache Kafka Architecture & Fundamentals Explained
Apache Kafka Architecture & Fundamentals ExplainedApache Kafka Architecture & Fundamentals Explained
Apache Kafka Architecture & Fundamentals Explained
 
VM Job Queues in CloudStack
VM Job Queues in CloudStackVM Job Queues in CloudStack
VM Job Queues in CloudStack
 

Similar to Connecting Applications Everywhere with ActiveMQ

Camel oneactivemq posta-final
Camel oneactivemq posta-finalCamel oneactivemq posta-final
Camel oneactivemq posta-finalChristian Posta
 
Docker Swarm secrets for creating great FIWARE platforms
Docker Swarm secrets for creating great FIWARE platformsDocker Swarm secrets for creating great FIWARE platforms
Docker Swarm secrets for creating great FIWARE platformsFederico Michele Facca
 
JUDCon2014-ScalableMessagingWithJBossA-MQ and Apache Camel
JUDCon2014-ScalableMessagingWithJBossA-MQ and Apache CamelJUDCon2014-ScalableMessagingWithJBossA-MQ and Apache Camel
JUDCon2014-ScalableMessagingWithJBossA-MQ and Apache CamelNaveen Raj Balasubramaniam
 
Mom those things v1
Mom those things v1 Mom those things v1
Mom those things v1 von gosling
 
[OpenStack Days Korea 2016] Track1 - Mellanox CloudX - Acceleration for Cloud...
[OpenStack Days Korea 2016] Track1 - Mellanox CloudX - Acceleration for Cloud...[OpenStack Days Korea 2016] Track1 - Mellanox CloudX - Acceleration for Cloud...
[OpenStack Days Korea 2016] Track1 - Mellanox CloudX - Acceleration for Cloud...OpenStack Korea Community
 
WSO2 Product Release webinar - WSO2 Message Broker 2.2.0
WSO2 Product Release webinar - WSO2 Message Broker 2.2.0WSO2 Product Release webinar - WSO2 Message Broker 2.2.0
WSO2 Product Release webinar - WSO2 Message Broker 2.2.0WSO2
 
FIWARE Tech Summit - Docker Swarm Secrets for Creating Great FIWARE Platforms
FIWARE Tech Summit - Docker Swarm Secrets for Creating Great FIWARE PlatformsFIWARE Tech Summit - Docker Swarm Secrets for Creating Great FIWARE Platforms
FIWARE Tech Summit - Docker Swarm Secrets for Creating Great FIWARE PlatformsFIWARE
 
Low Latency Mobile Messaging using MQTT
Low Latency Mobile Messaging using MQTTLow Latency Mobile Messaging using MQTT
Low Latency Mobile Messaging using MQTTHenrik Sjöstrand
 
Cloud-based performance testing
Cloud-based performance testingCloud-based performance testing
Cloud-based performance testingabhinavm
 
quickguide-einnovator-3-rabbitmq
quickguide-einnovator-3-rabbitmqquickguide-einnovator-3-rabbitmq
quickguide-einnovator-3-rabbitmqjorgesimao71
 
Enterprise Messaging With ActiveMQ and Spring JMS
Enterprise Messaging With ActiveMQ and Spring JMSEnterprise Messaging With ActiveMQ and Spring JMS
Enterprise Messaging With ActiveMQ and Spring JMSBruce Snyder
 
IBM IMPACT 2014 - AMC-1882 Building a Scalable & Continuously Available IBM M...
IBM IMPACT 2014 - AMC-1882 Building a Scalable & Continuously Available IBM M...IBM IMPACT 2014 - AMC-1882 Building a Scalable & Continuously Available IBM M...
IBM IMPACT 2014 - AMC-1882 Building a Scalable & Continuously Available IBM M...Peter Broadhurst
 
Connecting applicationswitha mq
Connecting applicationswitha mqConnecting applicationswitha mq
Connecting applicationswitha mqRob Davies
 
What You Should Know About WebLogic Server 12c (12.2.1.2) #oow2015 #otntour2...
What You Should Know About WebLogic Server 12c (12.2.1.2)  #oow2015 #otntour2...What You Should Know About WebLogic Server 12c (12.2.1.2)  #oow2015 #otntour2...
What You Should Know About WebLogic Server 12c (12.2.1.2) #oow2015 #otntour2...Frank Munz
 
f2f-overview12.ppt
f2f-overview12.pptf2f-overview12.ppt
f2f-overview12.pptwentaozhu3
 
f2f-overview1-presentation about rabbitmq and middleware
f2f-overview1-presentation about rabbitmq and middlewaref2f-overview1-presentation about rabbitmq and middleware
f2f-overview1-presentation about rabbitmq and middlewarendonikristi98
 

Similar to Connecting Applications Everywhere with ActiveMQ (20)

Camel oneactivemq posta-final
Camel oneactivemq posta-finalCamel oneactivemq posta-final
Camel oneactivemq posta-final
 
IBM MQ vs Apache ActiveMQ
IBM MQ vs Apache ActiveMQIBM MQ vs Apache ActiveMQ
IBM MQ vs Apache ActiveMQ
 
Making Apache Camel work for you
Making Apache Camel work for you Making Apache Camel work for you
Making Apache Camel work for you
 
Docker Swarm secrets for creating great FIWARE platforms
Docker Swarm secrets for creating great FIWARE platformsDocker Swarm secrets for creating great FIWARE platforms
Docker Swarm secrets for creating great FIWARE platforms
 
JUDCon2014-ScalableMessagingWithJBossA-MQ and Apache Camel
JUDCon2014-ScalableMessagingWithJBossA-MQ and Apache CamelJUDCon2014-ScalableMessagingWithJBossA-MQ and Apache Camel
JUDCon2014-ScalableMessagingWithJBossA-MQ and Apache Camel
 
Mom those things v1
Mom those things v1 Mom those things v1
Mom those things v1
 
[OpenStack Days Korea 2016] Track1 - Mellanox CloudX - Acceleration for Cloud...
[OpenStack Days Korea 2016] Track1 - Mellanox CloudX - Acceleration for Cloud...[OpenStack Days Korea 2016] Track1 - Mellanox CloudX - Acceleration for Cloud...
[OpenStack Days Korea 2016] Track1 - Mellanox CloudX - Acceleration for Cloud...
 
WSO2 Product Release webinar - WSO2 Message Broker 2.2.0
WSO2 Product Release webinar - WSO2 Message Broker 2.2.0WSO2 Product Release webinar - WSO2 Message Broker 2.2.0
WSO2 Product Release webinar - WSO2 Message Broker 2.2.0
 
FIWARE Tech Summit - Docker Swarm Secrets for Creating Great FIWARE Platforms
FIWARE Tech Summit - Docker Swarm Secrets for Creating Great FIWARE PlatformsFIWARE Tech Summit - Docker Swarm Secrets for Creating Great FIWARE Platforms
FIWARE Tech Summit - Docker Swarm Secrets for Creating Great FIWARE Platforms
 
Low Latency Mobile Messaging using MQTT
Low Latency Mobile Messaging using MQTTLow Latency Mobile Messaging using MQTT
Low Latency Mobile Messaging using MQTT
 
Cloud-based performance testing
Cloud-based performance testingCloud-based performance testing
Cloud-based performance testing
 
quickguide-einnovator-3-rabbitmq
quickguide-einnovator-3-rabbitmqquickguide-einnovator-3-rabbitmq
quickguide-einnovator-3-rabbitmq
 
OpenMQ Aquarium Paris
OpenMQ Aquarium ParisOpenMQ Aquarium Paris
OpenMQ Aquarium Paris
 
Enterprise Messaging With ActiveMQ and Spring JMS
Enterprise Messaging With ActiveMQ and Spring JMSEnterprise Messaging With ActiveMQ and Spring JMS
Enterprise Messaging With ActiveMQ and Spring JMS
 
IBM IMPACT 2014 - AMC-1882 Building a Scalable & Continuously Available IBM M...
IBM IMPACT 2014 - AMC-1882 Building a Scalable & Continuously Available IBM M...IBM IMPACT 2014 - AMC-1882 Building a Scalable & Continuously Available IBM M...
IBM IMPACT 2014 - AMC-1882 Building a Scalable & Continuously Available IBM M...
 
Connecting applicationswitha mq
Connecting applicationswitha mqConnecting applicationswitha mq
Connecting applicationswitha mq
 
What You Should Know About WebLogic Server 12c (12.2.1.2) #oow2015 #otntour2...
What You Should Know About WebLogic Server 12c (12.2.1.2)  #oow2015 #otntour2...What You Should Know About WebLogic Server 12c (12.2.1.2)  #oow2015 #otntour2...
What You Should Know About WebLogic Server 12c (12.2.1.2) #oow2015 #otntour2...
 
f2f-overview12.ppt
f2f-overview12.pptf2f-overview12.ppt
f2f-overview12.ppt
 
f2f-overview1-presentation about rabbitmq and middleware
f2f-overview1-presentation about rabbitmq and middlewaref2f-overview1-presentation about rabbitmq and middleware
f2f-overview1-presentation about rabbitmq and middleware
 
OMA Lightweight M2M
OMA Lightweight M2M OMA Lightweight M2M
OMA Lightweight M2M
 

More from Rob Davies

Integration in the Cloud
Integration in the CloudIntegration in the Cloud
Integration in the CloudRob Davies
 
Messaging For the Cloud and Microservices
Messaging For the Cloud and MicroservicesMessaging For the Cloud and Microservices
Messaging For the Cloud and MicroservicesRob Davies
 
OSGi made simple - Fuse Application Bundles
OSGi made simple - Fuse Application BundlesOSGi made simple - Fuse Application Bundles
OSGi made simple - Fuse Application BundlesRob Davies
 
Enterprise Integration Patterns with ActiveMQ
Enterprise Integration Patterns with ActiveMQEnterprise Integration Patterns with ActiveMQ
Enterprise Integration Patterns with ActiveMQRob Davies
 
How opensourceworks
How opensourceworksHow opensourceworks
How opensourceworksRob Davies
 

More from Rob Davies (7)

Integration in the Cloud
Integration in the CloudIntegration in the Cloud
Integration in the Cloud
 
Messaging For the Cloud and Microservices
Messaging For the Cloud and MicroservicesMessaging For the Cloud and Microservices
Messaging For the Cloud and Microservices
 
Fabric8 mq
Fabric8 mqFabric8 mq
Fabric8 mq
 
Fuse overview
Fuse overviewFuse overview
Fuse overview
 
OSGi made simple - Fuse Application Bundles
OSGi made simple - Fuse Application BundlesOSGi made simple - Fuse Application Bundles
OSGi made simple - Fuse Application Bundles
 
Enterprise Integration Patterns with ActiveMQ
Enterprise Integration Patterns with ActiveMQEnterprise Integration Patterns with ActiveMQ
Enterprise Integration Patterns with ActiveMQ
 
How opensourceworks
How opensourceworksHow opensourceworks
How opensourceworks
 

Recently uploaded

Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 

Recently uploaded (20)

Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 

Connecting Applications Everywhere with ActiveMQ

  • 1. CamelOne 2013 June 10-11 2013 Boston, MA 1 Connecting Applications Everywhere with ActiveMQ Rob Davies Technical Director, Fuse Engineering, Red Hat Inc.
  • 2. CamelOne 2013 CamelOne 2 Rob Davies Technical Director, Red Hat - h"p://www.redhat.com ■  Previously CTO of FuseSource - #1 OS vendor for integration and messaging ■  Software projects: ■  Apache ActiveMQ, ■  Apache Camel ■  Apache ServiceMix ■  On  Expert  Group  for  JSR  343:  JMS  2.0   ■  Co-­‐author  of  AcCveMQ  in  AcCon:  
  • 3. CamelOne 2013 CamelOne Why use Message- Oriented Middleware?   Robustness  to  change     Time  Independence     LocaCon  Independence     Hide  Latency     Scalability     Event  driven     Simplicity     Configurable  Quality  of  Service     PlaRorm  and  Language  IntegraCon     Fault  tolerant    
  • 4. CamelOne 2013 CamelOne 4 What is Apache ActiveMQ ? ■ Top Level Apache Software Foundation Project ■ Wildly popular, high performance, reliable message broker ■ Connects to nearly everything ■ Native Java, C/C++, .Net, ■ AMQP 1.0, MQTT 3.1, STOMP (1.0-1.2) and OpenWire ■ STOMP enables Ruby, JS, Perl, Python, PHP, ActionScript … ■ Embedded and standalone deployment options
  • 6. CamelOne 2013 CamelOne Message Channels and Routing •  Message Channels •  Named communication between interested parties •  JMS calls them ‘Destinations’ •  Can “tune-in” to multiple channels using wildcards •  Can fine-tune message consumption with selectors •  Can route a message based on content
  • 7. CamelOne 2013 CamelOne Message Channels = JMS Destinations Producer Broker Consumer Consumer Consumer Destination WIDGET Destination ORDER
  • 8. CamelOne 2013 CamelOne Point-toPoint Channel: JMS Queues Producer Consumer Consumer Consumer Queue
  • 9. CamelOne 2013 CamelOne Publish/Subscribe Channel: JMS Topics Producer Consumer Consumer Consumer Topic
  • 10. CamelOne 2013 CamelOne Message Routing : Selectors DestinationProducer Consumer color='blue' Consumer color='red'
  • 11. CamelOne 2013 CamelOne Message Routing : Destination Wildcards Topic: BAR.BEER Consumer topic:BAR.> Topic: BAR.WINE Producer
  • 13. CamelOne 2013 CamelOne Message Groups Like Parallel Exclusive Consumers ■ Guaranteed ordering of related messages across a Queue ■ But – load balancing of messages across multiple consumers ■ All messages with the same JMSXGroupID go to the same consumer ■ How you group messages is down to the application’s producer ■ To explicitly close a group, set the JMSXGroupSeq to -1 13
  • 14. CamelOne 2013 CamelOne 14 Message Groups code: Message message = session.createTextMessage("<foo>hi from Devoxx</foo>"); message.setStringProperty("JMSXGroupID", ”RHT_NYSE"); producer.send(message); Message message = session.createTextMessage(foobye from Devoxx/foo); message.setStringProperty(JMSXGroupID, ”RHT_NYSE); message.setStringProperty(JMSXGroupSeq, -1); producer.send(message); //Starting a Group … //Close a Group …
  • 15. CamelOne 2013 CamelOne Deploying ActiveMQ ActiveMQ Can run standalone or embedded ■ As a standalone, or part of a highly available message broker cluster ■ Embedded – easy to use an entire broker in JUnit tests (no need to Mock) ■ In Tomcat, deployed as a war ■ In JEE Server – either co-locate – or use client with JCA ■ ActiveMQ distributions contain a rar for this purpose 15
  • 17. CamelOne 2013 CamelOne Message Delivery Mode •  Messages can be persisted – allowing for decoupled applications •  For Queues, any message delivered as PERSISTENT must be stored on long term storage before being delivered to a consumer •  For Topics, a message delivered as PERSISTENT will only be stored if there exists a durable subscriber •  NON-PERSISTENT messages may also be stored on disk if the memory limits of the broker have been reached 17
  • 18. CamelOne 2013 CamelOne Message stores supported by ActiveMQ ■ SQL (JDBC) ■ SQL (JDBC) with journal ■ AMQ Message Store ■ Kaha ■ KahaDB ■ LevelDB 18 Slow but popular Don’t use (deprecated) The “current” default The “best yet”
  • 19. CamelOne 2013 CamelOne LevelDB Store vs KahaDB •  Fewer index entries per message than KahaDB •  Faster recovery when a broker restarts •  LevelDB index out-perform Btree index at sequential access . •  LevelDB indexes support concurrent read access. •  Pauseless data log file garbage collection cycles. •  Fewer IOPS to load stored messages. •  It exposes it's status via JMX for monitoring
  • 22. CamelOne 2013 CamelOne OpenWire Advantages: •  Fast – optimized for ActiveMQ •  client failover •  automatic reconnect •  Client load balancing •  Flow control •  Many advanced features 22 Disadvantages: •  Not a recognized standard •  Only Java, C/C++/.Net http://activemq.apache.org/openwire.html
  • 23. CamelOne 2013 CamelOne MQTT http://mqtt.org Advantages: •  M2M/”Internet of Things” transport •  Proposed as an OASIS standard •  Extremely light weight •  Growing support from vendors and OS products •  WebSphereMQ •  ActiveMQ + Apollo •  Mosquitto •  RabbitMQ 23 Disadvantages: •  3.1 does not support Queues •  Advanced features not standard •  Flow control •  Failover etc.
  • 24. CamelOne 2013 CamelOne AMQP – see www.amqp.org Advantages: •  AMQP 1.0 OASIS standard •  Proposed as an OASIS standard •  Commoditizes the Broker 24 Disadvantages: •  One size doesn’t really fit all •  Currently no plans for IBM or Tibco to adopt it
  • 25. CamelOne 2013 CamelOne STOMP – http://stomp.github.com Advantages: •  Easy to use text based protocol •  Can use telnet as a client •  Defacto standard: •  ActiveMQ + Apollo •  HornetQ •  RabbitMQ •  PocoMQ •  StompServer •  OpenMQ •  Many more … 25 Disadvantages: •  Not as fast as binary formats
  • 26. CamelOne 2013 CamelOne But there’s more: WebSockets STOMP is a natural wire protocol for WebSockets 26 ActiveMQ Client (Browser) WebSocket Connector Stomp Converter ActiveMQ (Backend) TCP (WebSocket) HTTP(S) Request/Response 1. HTTP Request (Upgrade) 2. HTTP Response 4. Message received from Topic 5. Send WebSocket Data 3. Stomp Subscribe
  • 28. CamelOne 2013 CamelOne Command line: •  Activemq •  activemq-admin •  activemq-admin stop •  activemq-admin query •  activemq-admin bstat •  activemq-admin browse •  activemq-admin list 28 Runs the broker Manages the broker
  • 32. CamelOne 2013 CamelOne High Availability ActiveMQ Cluster ActiveMQ Client Supported by both Java and C++ OpenWire clients
  • 34. CamelOne 2013 CamelOne Network of Brokers : Geographically Dispersed
  • 35. CamelOne 2013 CamelOne Network of Brokers : Network with Master/Slave
  • 36. CamelOne 2013 CamelOne Scaling Networks of Brokers •  Brokers share routing information across networks •  All destinations are considered Global •  This is really convenient •  Though it starts to get problematic with 1000’s of brokers •  However – we can do filtering to shape the traffic across networks •  But this involves a lot of manual configuration 36  crikey!   
  • 37. CamelOne 2013 CamelOne •  Brokers share routing information across networks •  All destinations are considered Global •  This is really convenient •  Though it starts to get problematic with 1000’s of brokers •  However – we can do filtering to shape the traffic across networks •  But this involves a lot of manual configuration 37 Time to talk about Apache Camel … Scaling Networks of Brokers
  • 38. CamelOne 2013 CamelOne ActiveMQ with embedded Camel Service Consumer Consumer ActiveMQ Broker Flexible and is faster J
  • 39. CamelOne 2013 CamelOne 39 ActiveMQ with embedded Camel beans    broker brokerName=testBroker  xmlns=http://activemq.apache.org/schema/core     transportConnectors       transportConnector uri=tcp://localhost:61616/     /transportConnectors   /broker   import resource=camel.xml/ /beans Import Camel into ActiveMQ broker config:
  • 40. CamelOne 2013 CamelOne 40 Setup Camel Context in the usual way beans … camelContext id=camel xmlns=http://camel.apache.org/schema/spring route descriptionExample Camel Route/description from uri=activemq:topic:audio/ setHeader headerName=JMS_AMQP_MESSAGE_FORMAT constant0/constant /setHeader to uri=activemq:queue:audio/ /route /camelContext … /beans
  • 41. CamelOne 2013 CamelOne Scaling Networks – use Apache Camel •  Allows for non-chatty networks to be established •  Routing information can be externalized to the broker •  Successfully used in production for 1000’s of brokers today 41
  • 43. CamelOne 2013 CamelOne Problems – Deploying and maintenance •  Main problems •  Installing brokers on multiple hosts •  ssh, untar, set directories and environment •  Setting configuration manually for every broker •  copying xml config, tweaking, testing •  Updating configuration across cluster •  Upgrading brokers It’s a tedious and error-prone process
  • 44. CamelOne 2013 CamelOne Problems – Traditional best- practice tips •  Keep XML as a template and configure node-specific details through properties •  Keep configuration in SVC system (git, svn, ...) •  Keep configuration separate from installation for easier upgrades Deployment with Fuse Fabric moves it to the next level
  • 45. CamelOne 2013 CamelOne Problems - Clients •  Topology is very “static” •  Clients need to be aware of topology •  Clients need to know broker locations •  Changes are not easy as clients need to be updated •  Adding new resources (brokers) requires client updates •  Not suitable for “cloud” deployments Fuse Fabric makes deployments more “elastic”
  • 47. CamelOne 2013 CamelOne Fuse Fabric – Key Features Fuse  IDE     hawCo   ActiveMQ Cluster Camel Endpoints ServiceMix Runtime Registry •  Supports Hybrid deployments •  Distributed Configuration •  Runtime registry •  Centralized Management
  • 48. CamelOne 2013 CamelOne FuseMQ features •  mq-base profile •  Defines OSGi features and bundles to be installed •  Defines basic broker settings •  mq-create command •  Helper command for creating brokers •  Creates an new profile based on mq-base •  Optionally creates new containers •  Assigns the profile to containers (essentially starts the broker) FuseMQ = ActiveMQ deployed in Apache Karaf +
  • 49. CamelOne 2013 CamelOne Why is Integration and Messaging Important ? Head Office Enterprises Need to know Everything!
  • 50. CamelOne 2013 CamelOne There are more things to Integrate with!
  • 51. CamelOne 2013 CamelOne The Internet of Things •  Uniquely identifiable objects and their virtual representations in an internet-like structure •  Originally defined by Kevin Ashton, co-founder of Auto-ID center at MIT •  Today its meaning has evolved to encompass a world where physical objects are integrated into the information network, and where physical objects participate in business processes. 51
  • 52. CamelOne 2013 CamelOne Machine to Machine •  M2M involves collection and transmission of event level data (used to be called telemetry) from intelligent devices •  Machines can interact over the net – and/or attached networks – by wired and wireless networks •  Payloads are typically minimal (temperature, pressure, location, metering etc.) 52
  • 53. CamelOne 2013 CamelOne Internet of Things Time   Connected  Devices  on  the   internet   2010  2000   2020   1  Billion   50  Billion   10    Billion   Ubiquitous   posiConing  –   locaCng  people  and   everyday  objects     RFID  tags  for   Inventory  control   Advanced  sensors,   Enterprises  fully   connected:  integraCon   of  everything   Geo-­‐located  devices   Microcontrollers   internet  enabled   Vending  machines,  lone   workers,  POS,  vehicles,   planes,  tolls,  power   systems,  transport,   telemedicine,    home   appliances,  power   systems,  etc.  
  • 54. CamelOne 2013 CamelOne M2M Examples •  Smart Energy – Smart Grid uses smart meters for monitoring energy uses by premises for billing, substation and transmission line monitoring, energy production (renewables) •  Inventory Control – smart labels and RFID tags – connected scanners pass information upstream to servers for monitoring •  In-Vehicle Systems Maintenance information, global positioning, ‘black-box’ (speed and driving habits), wireless payments for tolls/gas •  Environmental Monitoring Weather stations (temperature, air-pressure), ocean monitors, earth movements, volcanic activity crop yields etc. •  Livestock monitoring Cow herds, monitored for optimum time for milking, sheep herds for location 54
  • 56. CamelOne 2013 CamelOne Power Consumption! •  Battery life for mobiles, power consumption for smart devices is an important consideration. •  Facebook use MQTT for real-time updates – efficiency was one of the things considered •  MQTT is more efficient at establishing connections, sends information more reliably, and consumes less power to transmit data than HTTP. 56
  • 57. CamelOne 2013 CamelOne Deluge of Data •  Billions of devices send information will require storage and processing of terabytes or even petabytes of data. •  Big Data Ingestion: Processing of vast amounts of data business generates to make good decisions is only half the problem. Ingesting that data from all areas of the enterprise will require TBs of data to be ingested in highly reliable and scalable way. 57
  • 58. CamelOne 2013 CamelOne Need an Eco system of technologies Dev •  Integration is getting harder •  Traditional message brokers are key to connect “everything” •  Multiple protocols need to be supported •  Camel can provide integration at the edges – and the data center •  Technologies like Fuse Fabric provide centralized provisioning and management •  Need to mix protocols, brokers and “message routers” to scale FuseMQ Clusters Arrival Airport 1
  • 60. CamelOne 2013 CamelOne Messaging through the Internet of Things ActiveMQ AMQP/MQTT routers AMQP/MQTT routers AMQP/MQTT routers MQTT   MQTT-­‐S   AMQP   AMQP   AMQP   MQTT   MQTT   websockets  
  • 61. CamelOne 2013 CamelOne Simplified demo Java MQTT Client AMQP   MQTT   ActiveMQ MQTT/AMQP Gateway ActiveMQ AMQP/OpenWire Broker JMS OpenWire Client
  • 62. CamelOne 2013 CamelOne What is Arduino ? •  Open Source Hardware microcontroller •  Cheap and easily available. •  Open Source Software. •  Widespread: many projects. •  Extra HW (shields) available (e.g. WiFi shield)
  • 63. CamelOne 2013 CamelOne 63   USB 7-12 v 3 v GRD 5 v Analog Input Pins Digital Input/Output Pins Pins with ~ are PWM [Analog Output] GRD Transmitter/Receiver Serial Connection Microcontroller ATmega328 OperatingVoltage 5V InputVoltage (recommended)7-12V InputVoltage (limits)6-20V Digital I/O Pins 14 (of which 6 provide PWM output) Analog Input Pins 6 DC Current per I/O Pin 40 mA DC Current for 3.3V Pin 50 mA
  • 64. CamelOne 2013 CamelOne Arduino Programming •  3 types of memory on Arduino •  Flash memory (program space) – 32 Kb •  SRAM – used by sketches – 2 Kb •  EPROM – long term memory – 1 Kb •  Programming language based on Wiring: C/C++ library designed to make input/output easier. Programs are called sketches. •  Arduino has a simple IDE, available on Windows, Linux and Mac
  • 65. CamelOne 2013 CamelOne Arduino MQTT to WebSockets Arduino AMQP   MQTT   ActiveMQ MQTT/AMQP Gateway ActiveMQ AMQP/WebSockets Broker HTML 5/WebSockets
  • 66. CamelOne 2013 CamelOne Useful Resources: •  http://activemq.apache.org •  http://camel.apache.org •  http://fuse.fusesource.org/fabric/docs/overview.html •  http://fuse.fusesource.org/mq/docs/mq-fabric.html •  https://github.com/fusesource/fuseide •  http://hawt.io •  http://www.arduino.cc/ Messaging and Integration Developer tooling Management Configuration and provisioning Arduino