An Introduction to MQ Light & Bluemix · IBM Bluemix Bluemix is an open-standards, cloud-based...

39
Capitalware's MQ Technical Conference v2.0.1.5 An Introduction to MQ Light & Bluemix Matthew Whitehead WebSphere MQ Development [email protected]

Transcript of An Introduction to MQ Light & Bluemix · IBM Bluemix Bluemix is an open-standards, cloud-based...

Page 1: An Introduction to MQ Light & Bluemix · IBM Bluemix Bluemix is an open-standards, cloud-based platform for building, running, and managing applications. Build your apps, your way

Capitalware's MQ Technical Conference v2.0.1.5

An Introduction to MQ Light & Bluemix

Matthew Whitehead

WebSphere MQ Development

[email protected]

Page 2: An Introduction to MQ Light & Bluemix · IBM Bluemix Bluemix is an open-standards, cloud-based platform for building, running, and managing applications. Build your apps, your way

Capitalware's MQ Technical Conference v2.0.1.5

Agenda

• Intro to MQ Light

• MQ Light in Bluemix

• MQ support for MQ Light (beta)

Page 3: An Introduction to MQ Light & Bluemix · IBM Bluemix Bluemix is an open-standards, cloud-based platform for building, running, and managing applications. Build your apps, your way

Capitalware's MQ Technical Conference v2.0.1.5

IBM Messaging

Deliver Messaging Backbone for Enterprise Focus on traditional MQ values, rock-solid enterprise-class service, ease-of-operation, breadth of platform coverage, availability, z/OS exploitation

Enable Developers to build more scalable, responsive applications Focus on app use cases, breadth of languages, ease-of-deployment, micro services, integration with developer frameworks

Page 4: An Introduction to MQ Light & Bluemix · IBM Bluemix Bluemix is an open-standards, cloud-based platform for building, running, and managing applications. Build your apps, your way

Capitalware's MQ Technical Conference v2.0.1.5

MQ Light : Software and Cloud

Messaging that application developers

will love to use, helping them make

responsive applications that scale easily

3 ways to get it: Bluemix service

MQ Light software download

Statement of Direction for support in MQ

Version 8.

Open APIs crafted to feel natural in a

growing range of popular languages

Tooling that makes modular app

development easy

THIS PRESENTATION

Page 5: An Introduction to MQ Light & Bluemix · IBM Bluemix Bluemix is an open-standards, cloud-based platform for building, running, and managing applications. Build your apps, your way

Capitalware's MQ Technical Conference v2.0.1.5

The journey that got us here

Andy

Developer

Iain

Infrastructure

Guy

I want to execute code

without taxing my

Web app processes

My job is run a

communications service

for my customers’ apps

Some

Thing

My Apps Workers Messaging

Backbone

My Customers’ Apps

Page 6: An Introduction to MQ Light & Bluemix · IBM Bluemix Bluemix is an open-standards, cloud-based platform for building, running, and managing applications. Build your apps, your way

Capitalware's MQ Technical Conference v2.0.1.5

Corporate-free look & feel

Page 7: An Introduction to MQ Light & Bluemix · IBM Bluemix Bluemix is an open-standards, cloud-based platform for building, running, and managing applications. Build your apps, your way

Capitalware's MQ Technical Conference v2.0.1.5

Use cases

Connecting external

systems

Event driven

Worker offload

• Posting video to multiple social

sites after transcoding

• Respond to external events

• Updating external booking app

• Posting updates to twitter

• Image processing

• Text analytics

Page 8: An Introduction to MQ Light & Bluemix · IBM Bluemix Bluemix is an open-standards, cloud-based platform for building, running, and managing applications. Build your apps, your way

Capitalware's MQ Technical Conference v2.0.1.5

Deployment Options

MQ Light Service

for Bluemix

WebSphere MQ [open Beta]

“MQ Light”

Page 9: An Introduction to MQ Light & Bluemix · IBM Bluemix Bluemix is an open-standards, cloud-based platform for building, running, and managing applications. Build your apps, your way

Capitalware's MQ Technical Conference v2.0.1.5

What is MQ Light?

1. A new messaging API

2. A messaging runtime for on-premise development

and deployment

3. A PaaS messaging runtime for admin-free cloud

deployment (MQ Light Service in Bluemix)

More on all of these throughout the slides...

Page 10: An Introduction to MQ Light & Bluemix · IBM Bluemix Bluemix is an open-standards, cloud-based platform for building, running, and managing applications. Build your apps, your way

Capitalware's MQ Technical Conference v2.0.1.5

MQ Light API - Language support

• Simple, programming Language neutral messaging model

• Idiomatic language & framework API Mappings

• Frictionless development

• Open wire protocol

(AMQP 1.0) &

• Open Source client libraries

• Facilitates community drivers for languages & frameworks

Page 11: An Introduction to MQ Light & Bluemix · IBM Bluemix Bluemix is an open-standards, cloud-based platform for building, running, and managing applications. Build your apps, your way

Capitalware's MQ Technical Conference v2.0.1.5

MQ Light Messaging Model – Send Messages

Applications send messages to a topic.

A topic is an address in the topic space

either flat or arranged hierarchically.

1. Send (‘/test/a’, “Hello”);

2. Send (‘/test/a’, “World!”);

Topic Address Space

Sender application

Page 12: An Introduction to MQ Light & Bluemix · IBM Bluemix Bluemix is an open-standards, cloud-based platform for building, running, and managing applications. Build your apps, your way

Capitalware's MQ Technical Conference v2.0.1.5

MQ Light Messaging Model – Simple Receive

• Applications receive messages by creating a destination with a pattern

which matches the topics they are interested in.

• Pattern matching scheme based on WMQ.

1. Send (‘/test/a’, “Hello”);

2. Send (‘/test/a’, “World!”);

1. Hello

2. World!

Topic Address Space

Sender application

DESTINATION

Pattern=/test/a

Page 13: An Introduction to MQ Light & Bluemix · IBM Bluemix Bluemix is an open-standards, cloud-based platform for building, running, and managing applications. Build your apps, your way

Capitalware's MQ Technical Conference v2.0.1.5

MQ Light Messaging Model – Pub/Sub

• Multiple destinations can be created which match the same topic

• Pub/Sub style.

DESTINATION

1. Send (‘/test/a’, “Hello”);

2. Send (‘/test/a’, “World!”);

1. Hello

2. World!

1. Hello

2. World!

Topic Address Space

Sender application

DESTINATION

Pattern=/test/a

Pattern=/test/#

Client 1

Client 2

Page 14: An Introduction to MQ Light & Bluemix · IBM Bluemix Bluemix is an open-standards, cloud-based platform for building, running, and managing applications. Build your apps, your way

Capitalware's MQ Technical Conference v2.0.1.5

MQ Light Messaging Model – Persistent destinations

• Destinations persist for a defined “time to live” after receiver detaches.

1. Send (‘/test/a’, “Hello”);

2. Send (‘/test/a’, “World!”);

Topic Address Space

Sender application

Hello

World!

DESTINATION

Pattern=/test/a

Disconnected client

Page 15: An Introduction to MQ Light & Bluemix · IBM Bluemix Bluemix is an open-standards, cloud-based platform for building, running, and managing applications. Build your apps, your way

Capitalware's MQ Technical Conference v2.0.1.5

MQ Light Messaging Model – Sharing

• Clients attaching to the same topic pattern and share name attach to

the same shared destination.

DESTINATION 1. Send (‘/test/a’, “Hello”);

2. Send (‘/test/a’, “World!”);

1. Hello

2. World!

1. Hello

2. World!

SHARING

Topic Address Space

Sender application

DESTINATION

Pattern=/test/#

Pattern=/test/#

Share=myshare

Client 1

Client 2

Client 3

Page 16: An Introduction to MQ Light & Bluemix · IBM Bluemix Bluemix is an open-standards, cloud-based platform for building, running, and managing applications. Build your apps, your way

Capitalware's MQ Technical Conference v2.0.1.5

MQ Light Messaging Model – Client takeover

1. Send (‘/test/a’, “Hello”);

Hello

Topic Address Space

Sender application

DESTINATION

Pattern=/test/#

Client 1

World!

Client 1

2. Send (‘/test/a’, “World!”);

• Applications connect to MQ Light service specify (optional) client ID.

• Re-using the same client ID pre-empts the original connection.

• Ideal for worker takeover in the cloud.

Page 17: An Introduction to MQ Light & Bluemix · IBM Bluemix Bluemix is an open-standards, cloud-based platform for building, running, and managing applications. Build your apps, your way

Capitalware's MQ Technical Conference v2.0.1.5

MQ Light Messaging Model

DESTINATION 1. Send (‘/test/a’, “Hello”);

2. Send (‘/test/a’, “World!”);

1. Hello

2. World!

1. Hello

2. World!

SHARING

Topic Address Space

Sender application

DESTINATION

Pattern=/test/#

Pattern=/test/#

Share=myshare

Client 1

Client 2

Client 3

Page 18: An Introduction to MQ Light & Bluemix · IBM Bluemix Bluemix is an open-standards, cloud-based platform for building, running, and managing applications. Build your apps, your way

Capitalware's MQ Technical Conference v2.0.1.5

MQ Light Node.JS API

Installable from NPM

Fully non blocking – Node.JS style

Fluent programming style - wrappable into promises.

Focussed on code simplicity.

Client seamlessly retries across cloud endpoints

# Receive:

var mqlight = require('mqlight');

var recvClient = mqlight.createClient({service: 'amqp://localhost'});

recvClient.on('started', function() {

recvClient.subscribe('news/technology');

recvClient.on('message', function(data, delivery) {

console.log(data);

});

});

# Send:

var mqlight = require('mqlight');

var sendClient = mqlight.createClient({service: 'amqp://localhost'});

sendClient.on('started', function() {

sendClient.send('news/technology', 'Hello World!');

});

Page 19: An Introduction to MQ Light & Bluemix · IBM Bluemix Bluemix is an open-standards, cloud-based platform for building, running, and managing applications. Build your apps, your way

Capitalware's MQ Technical Conference v2.0.1.5

MQ Light Ruby API (Beta)

Installable from rubygems.org

Synchronous/blocking client.

Bluemix connection support

Backlog Auto reconnect.

Asynchronous non blocking

TLS

# Receive:

require 'mqlight'

client = Mqlight::BlockingClient.new('amqp://localhost')

client.subscribe('news/technology')

delivery = client.receive('news/technology')

puts delivery.data

# Send:

require 'mqlight'

client = Mqlight::BlockingClient.new('amqp://localhost')

client.send('news/technology', 'Hello World!')

Page 20: An Introduction to MQ Light & Bluemix · IBM Bluemix Bluemix is an open-standards, cloud-based platform for building, running, and managing applications. Build your apps, your way

Capitalware's MQ Technical Conference v2.0.1.5

MQ Light Python API (Beta)

Installable from pypi.python.org

Non blocking

Client seemlessly retries across cloud endpoints

Backlog TLS

# Receive:

require 'mqlight'

client = Mqlight::BlockingClient.new('amqp://localhost')

client.subscribe('news/technology')

delivery = client.receive('news/technology')

puts delivery.data

# Send:

require 'mqlight'

client = Mqlight::BlockingClient.new('amqp://localhost')

client.send('news/technology', 'Hello World!')

Page 21: An Introduction to MQ Light & Bluemix · IBM Bluemix Bluemix is an open-standards, cloud-based platform for building, running, and managing applications. Build your apps, your way

Capitalware's MQ Technical Conference v2.0.1.5

MQ Light Non Blocking Java API

Installable using Maven

Code is opensource on github.

Non blocking

Client seemlessly retries across cloud endpoints

void send() {

NonBlockingClient.create("amqp://localhost", new NonBlockingClientAdapter<Void>() {

public void onStarted(NonBlockingClient client, Void context) {

client.send("news/technology", "Hello World!", null);

}

}, null);

}

void receive() {

NonBlockingClient.create("amqp://localhost", new NonBlockingClientAdapter<Void>() {

public void onStarted(NonBlockingClient client, Void context) {

client.subscribe("news/technology", new DestinationAdapter<Void>() {

public void onMessage(NonBlockingClient client, Void context, Delivery delivery) {

if (delivery.getType() == Delivery.Type.STRING) System.out.println(((StringDelivery)delivery).getData());

}

}, null, null);

}

}, null);

}

Page 22: An Introduction to MQ Light & Bluemix · IBM Bluemix Bluemix is an open-standards, cloud-based platform for building, running, and managing applications. Build your apps, your way

Capitalware's MQ Technical Conference v2.0.1.5

Web Based Tooling

Page 23: An Introduction to MQ Light & Bluemix · IBM Bluemix Bluemix is an open-standards, cloud-based platform for building, running, and managing applications. Build your apps, your way

Capitalware's MQ Technical Conference v2.0.1.5

Demo

Page 24: An Introduction to MQ Light & Bluemix · IBM Bluemix Bluemix is an open-standards, cloud-based platform for building, running, and managing applications. Build your apps, your way

Capitalware's MQ Technical Conference v2.0.1.5

Agenda

• Intro to MQ Light

• MQ Light in Bluemix

• MQ support for MQ Light (beta)

Page 25: An Introduction to MQ Light & Bluemix · IBM Bluemix Bluemix is an open-standards, cloud-based platform for building, running, and managing applications. Build your apps, your way

Capitalware's MQ Technical Conference v2.0.1.5

IBM Bluemix

Bluemix is an open-standards, cloud-based platform for building,

running, and managing applications.

Build your apps, your way

Use the most prominent

compute technologies to

power your app: Cloud

Foundry, Docker, OpenStack.

Extend apps with services

A catalog of IBM, third party,

and open source services

allow the developer to stitch

an application together

quickly.

Scale more than just

instances

Development, monitoring,

deployment, and logging

tools allow the developer to

run and manage the entire

application.

Layered Security

IBM secures the platform and

infrastructure and provides you

with the tools to secure your

apps.

Deploy and manage hybrid

apps seamlessly

Get a seamless dev and

management experience

across a number of hybrid

implementations options.

Flexible Pricing

Try compute options and

services for free and, when

you’re ready, pay only for what

you use. Pay as you go and

subscription models offer

choice and flexibility.

Page 26: An Introduction to MQ Light & Bluemix · IBM Bluemix Bluemix is an open-standards, cloud-based platform for building, running, and managing applications. Build your apps, your way

Capitalware's MQ Technical Conference v2.0.1.5

Single tenant hardware that’s completely dedicated to you –

allowing you to satisfy regulatory & legal compliance.

Dedicated

Public

Local

• The Bluemix platform and dedicated runtimes and services sit on SoftLayer hardware that is dedicated to you

• You still have the ability to connect to all multi-tenant services in the “public” catalog

• Integrated to your LDAP for developer authentication

• Elastic capacity based on your demands.

Has a “Dedicated to You” option

Page 27: An Introduction to MQ Light & Bluemix · IBM Bluemix Bluemix is an open-standards, cloud-based platform for building, running, and managing applications. Build your apps, your way

Capitalware's MQ Technical Conference v2.0.1.5

• Based on Pivotal ® Cloud Foundry ®

• Uses standard cf commands, e.g.

• cf push <myapp>

• cf start <myapp>

• cf stop <myapp>

• cf apps

• cf create-service …

• cf bind-service …

IBM Bluemix

Page 28: An Introduction to MQ Light & Bluemix · IBM Bluemix Bluemix is an open-standards, cloud-based platform for building, running, and managing applications. Build your apps, your way

Capitalware's MQ Technical Conference v2.0.1.5

Introduction to MQ Light Service

Page 29: An Introduction to MQ Light & Bluemix · IBM Bluemix Bluemix is an open-standards, cloud-based platform for building, running, and managing applications. Build your apps, your way

Capitalware's MQ Technical Conference v2.0.1.5

Bluemix UI identical to standalone MQ Light UI...

Page 30: An Introduction to MQ Light & Bluemix · IBM Bluemix Bluemix is an open-standards, cloud-based platform for building, running, and managing applications. Build your apps, your way

Capitalware's MQ Technical Conference v2.0.1.5

Applications are bound to the services they require

IBM Bluemix – Deployment Options

This is the dashboard for one of

my applications. It’s bound to an

MQ Light service I previously

created

cf create-service mqlight standard “MQ Light-7u“ cf bind-service mql.uiworkout.node “MQ Light-7u“

Page 31: An Introduction to MQ Light & Bluemix · IBM Bluemix Bluemix is an open-standards, cloud-based platform for building, running, and managing applications. Build your apps, your way

Capitalware's MQ Technical Conference v2.0.1.5

Demo

Page 32: An Introduction to MQ Light & Bluemix · IBM Bluemix Bluemix is an open-standards, cloud-based platform for building, running, and managing applications. Build your apps, your way

Capitalware's MQ Technical Conference v2.0.1.5

Agenda

• Intro to MQ Light

• MQ Light in Bluemix

• MQ support for MQ Light (beta)

Page 33: An Introduction to MQ Light & Bluemix · IBM Bluemix Bluemix is an open-standards, cloud-based platform for building, running, and managing applications. Build your apps, your way

Capitalware's MQ Technical Conference v2.0.1.5

MQ Light Support in IBM MQ

• MQ V8 Announce

• Statement of Direction - MQ Light Support in IBM MQ

• MQ Light Standalone Beta

2Q14

1Q15

3Q14

• MQ Light Standalone GA

• MQ Light Bluemix Service GA 4Q13

• MQ Light Standalone Alpha

• IBM MQ V8.0.0.2

• Release: MQ AMQP Tech Preview

Sept 2014

April 2014

Feb 2015

June 2015

• IBM MQ V8.0.0.3

• Update: MQ AMQP Tech Preview

Feb 2014

(Beta)

Page 34: An Introduction to MQ Light & Bluemix · IBM Bluemix Bluemix is an open-standards, cloud-based platform for building, running, and managing applications. Build your apps, your way

Capitalware's MQ Technical Conference v2.0.1.5

New AMQP channel type

• Adds a channel type of “AMQP”

• Support a subset of the AMQP 1.0 Oasis specification

• Interoperable with MQ FAP and MQTT applications (see later

slides for details)

(Beta)

Page 35: An Introduction to MQ Light & Bluemix · IBM Bluemix Bluemix is an open-standards, cloud-based platform for building, running, and managing applications. Build your apps, your way

Capitalware's MQ Technical Conference v2.0.1.5

Interoperability

• AMQP to/from MQ and MQTT

Published AMQP

messages MQPUT

to an MQ topic

Consumed AMQP

messages MQGET

from an MQSUB

MQ apps can publish to

AMQP clients by

MQPUT to the same

topic string

MQ apps can consume

AMQP messages by

subscribing to matching

topic pattern

warehouse/item/372837 warehouse/item/#

orders/electrical/# orders/electrical/wiring

(Beta)

Page 36: An Introduction to MQ Light & Bluemix · IBM Bluemix Bluemix is an open-standards, cloud-based platform for building, running, and managing applications. Build your apps, your way

Capitalware's MQ Technical Conference v2.0.1.4 © Copyright IBM 2014

Try it all out for yourselves!

MQ Light is available now at

https://www.ibmdw.net/messaging/mq-light/ or Google “IBM MQ Light”

MQ Light Service is available in IBM BlueMix today at http://bluemix.net

or Google “IBM BlueMix MQ Light”

Page 37: An Introduction to MQ Light & Bluemix · IBM Bluemix Bluemix is an open-standards, cloud-based platform for building, running, and managing applications. Build your apps, your way

Capitalware's MQ Technical Conference v2.0.1.5

Thank You - Questions?

Related sessions:

• Hybrid messaging with MQ Light, MQ’s beta for AMQP & Bluemix

• Tuesday 8.30am

• Wednesday 9.50am

• Repeat of this session

• Tuesday 1.00pm

Page 38: An Introduction to MQ Light & Bluemix · IBM Bluemix Bluemix is an open-standards, cloud-based platform for building, running, and managing applications. Build your apps, your way

Capitalware's MQ Technical Conference v2.0.1.5

Please Note

IBM’s statements regarding its plans, directions, and intent are subject to change

or withdrawal without notice at IBM’s sole discretion.

Information regarding potential future products is intended to outline our general

product direction and it should not be relied on in making a purchasing decision.

The information mentioned regarding potential future products is not a

commitment, promise, or legal obligation to deliver any material, code or

functionality. Information about potential future products may not be incorporated

into any contract. The development, release, and timing of any future features or

functionality described for our products remains at our sole discretion.

Performance is based on measurements and projections using standard IBM

benchmarks in a controlled environment. The actual throughput or performance

that any user will experience will vary depending upon many factors, including

considerations such as the amount of multiprogramming in the user’s job stream,

the I/O configuration, the storage configuration, and the workload processed.

Therefore, no assurance can be given that an individual user will achieve results

similar to those stated here.

Page 39: An Introduction to MQ Light & Bluemix · IBM Bluemix Bluemix is an open-standards, cloud-based platform for building, running, and managing applications. Build your apps, your way

Capitalware's MQ Technical Conference v2.0.1.5

• IBM and the IBM logo are trademarks of International Business Machines Corporation, registered

in many jurisdictions. Other marks may be trademarks or registered trademarks of their respective

owners.

• Microsoft, Windows, Windows NT, and the Windows logo are trademarks of Microsoft Corporation

in the United States, other countries, or both.

• Java and all Java-based trademarks and logos are trademarks or registered trademarks of Oracle

and/or its affiliates.

• Red Hat Enterprise Linux is a registered trademark of Red Hat, Inc. in the United States and other

countries.

• Ubuntu and Canonical are registered trademarks of Canonical Ltd.

• SUSE and SLES are registered trademarks of SUSE LLC in the United States and other countries

• Mac and OS X are trademarks of Apple Inc., registered in the U.S. and other countries

• Other company, product and service names may be trademarks, registered marks or service

marks of their respective owners.

• References in this publication to IBM products and services do not imply that IBM intends to make

them available in all countries in which IBM operates.

Trademark Statement