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

What's hot (20)

Ajax and PHP
Ajax and PHPAjax and PHP
Ajax and PHP
 
Gradle Introduction
Gradle IntroductionGradle Introduction
Gradle Introduction
 
Java11 New Features
Java11 New FeaturesJava11 New Features
Java11 New Features
 
Reactive programming by spring webflux - DN Scrum Breakfast - Nov 2018
Reactive programming by spring webflux - DN Scrum Breakfast - Nov 2018Reactive programming by spring webflux - DN Scrum Breakfast - Nov 2018
Reactive programming by spring webflux - DN Scrum Breakfast - Nov 2018
 
Spring Boot
Spring BootSpring Boot
Spring Boot
 
Active MQ
Active MQActive MQ
Active MQ
 
Spring Data JDBC: Beyond the Obvious
Spring Data JDBC: Beyond the ObviousSpring Data JDBC: Beyond the Obvious
Spring Data JDBC: Beyond the Obvious
 
Apache ActiveMQ and Apache Camel
Apache ActiveMQ and Apache CamelApache ActiveMQ and Apache Camel
Apache ActiveMQ and Apache Camel
 
Vertx
VertxVertx
Vertx
 
Hybrid Apps with Angular & Ionic Framework
Hybrid Apps with Angular & Ionic FrameworkHybrid Apps with Angular & Ionic Framework
Hybrid Apps with Angular & Ionic Framework
 
Jenkins
JenkinsJenkins
Jenkins
 
Introduction to Java 11
Introduction to Java 11 Introduction to Java 11
Introduction to Java 11
 
Spring Boot
Spring BootSpring Boot
Spring Boot
 
React Native
React NativeReact Native
React Native
 
RabbitMQ
RabbitMQ RabbitMQ
RabbitMQ
 
The RabbitMQ Message Broker
The RabbitMQ Message BrokerThe RabbitMQ Message Broker
The RabbitMQ Message Broker
 
Netflix Global Cloud Architecture
Netflix Global Cloud ArchitectureNetflix Global Cloud Architecture
Netflix Global Cloud Architecture
 
Kafka 101
Kafka 101Kafka 101
Kafka 101
 
Webpack Introduction
Webpack IntroductionWebpack Introduction
Webpack Introduction
 
The Apollo and GraphQL Stack
The Apollo and GraphQL StackThe Apollo and GraphQL Stack
The Apollo and GraphQL Stack
 

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

The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
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
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
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
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
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
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
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
 

Recently uploaded (20)

The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
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
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
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
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
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
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 

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