an introduction to mq light and bluemix

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

Upload: matthew1001

Post on 10-Feb-2017

290 views

Category:

Software


2 download

TRANSCRIPT

Page 1: An introduction to mq light and bluemix

Capitalware's MQ Technical Conference v2.0.1.5

An Introduction to MQ Light & BluemixAn Introduction to MQ Light & Bluemix

Matthew WhiteheadMatthew WhiteheadWebSphere MQ DevelopmentWebSphere MQ Development

[email protected]@uk.ibm.com

Page 2: An introduction to mq light and bluemix

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 and bluemix

Capitalware's MQ Technical Conference v2.0.1.5

IBM Messaging

Page 4: An introduction to mq light and bluemix

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 developmentand deployment

3. A PaaS messaging runtime for admin-free clouddeployment (MQ Light Service in Bluemix)

More on all of these throughout the slides...

Page 5: An introduction to mq light and bluemix

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 serviceMQ Light software downloadStatement 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 6: An introduction to mq light and bluemix

Capitalware's MQ Technical Conference v2.0.1.5

The journey that got us here

AndyDeveloper

IainInfrastructure

Guy

I want to execute code without taxing my Web app processes

My job is run a communications service for my customers’ apps

SomeThing

My Apps WorkersMessagingBackbone

My Customers’ Apps

Page 7: An introduction to mq light and bluemix

Capitalware's MQ Technical Conference v2.0.1.5

Corporate-free look & feel

Page 8: An introduction to mq light and bluemix

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 and bluemix

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 10: An introduction to mq light and bluemix

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 11: An introduction to mq light and bluemix

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. Hello2. World!

Topic Address Space

Sender application

DESTINATIONPattern=/test/a

Page 12: An introduction to mq light and bluemix

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. Hello2. World!

1. Hello2. World!

Topic Address Space

Sender application

DESTINATIONPattern=/test/a

Pattern=/test/#

Client 1

Client 2

Page 13: An introduction to mq light and bluemix

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

HelloWorld!

DESTINATIONPattern=/test/a

Disconnected client

Page 14: An introduction to mq light and bluemix

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.

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

1. Hello2. World!

1. Hello

2. World!

SHARING

Topic Address Space

Sender application

DESTINATIONPattern=/test/#

Pattern=/test/#Share=myshare

Client 1

Client 2

Client 3

Page 15: An introduction to mq light and bluemix

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

DESTINATIONPattern=/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 16: An introduction to mq light and bluemix

Capitalware's MQ Technical Conference v2.0.1.5

MQ Light Messaging Model

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

1. Hello2. World!

1. Hello

2. World!

SHARING

Topic Address Space

Sender application

DESTINATIONPattern=/test/#

Pattern=/test/#Share=myshare

Client 1

Client 2

Client 3

Page 17: An introduction to mq light and bluemix

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 18: An introduction to mq light and bluemix

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 19: An introduction to mq light and bluemix

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 20: An introduction to mq light and bluemix

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 21: An introduction to mq light and bluemix

Capitalware's MQ Technical Conference v2.0.1.5

Web Based Tooling

Page 22: An introduction to mq light and bluemix

Capitalware's MQ Technical Conference v2.0.1.5

Demo

Page 23: An introduction to mq light and bluemix

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 24: An introduction to mq light and bluemix

Capitalware's MQ Technical Conference v2.0.1.5

IBM BluemixBluemix is an open-standards, cloud-based platform for building, running, and managing applications.Build your apps, your wayUse the most prominent compute technologies to power your app: Cloud Foundry, Docker, OpenStack.

Extend apps with servicesA catalog of IBM, third party, and open source services allow the developer to stitch an application together quickly.

Scale more than just instancesDevelopment, monitoring, deployment, and logging tools allow the developer to run and manage the entire application.

Layered SecurityIBM secures the platform and infrastructure and provides you with the tools to secure your apps.

Deploy and manage hybrid apps seamlesslyGet 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 25: An introduction to mq light and bluemix

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 26: An introduction to mq light and bluemix

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 27: An introduction to mq light and bluemix

Capitalware's MQ Technical Conference v2.0.1.5

Introduction to MQ Light Service

Page 28: An introduction to mq light and bluemix

Capitalware's MQ Technical Conference v2.0.1.5

Bluemix UI identical to standalone MQ Light UI...

Page 29: An introduction to mq light and bluemix

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 30: An introduction to mq light and bluemix

Capitalware's MQ Technical Conference v2.0.1.5

Demo

Page 31: An introduction to mq light and bluemix

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 32: An introduction to mq light and bluemix

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 GA4Q13

• 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 33: An introduction to mq light and bluemix

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 34: An introduction to mq light and bluemix

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 35: An introduction to mq light and bluemix

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

Try it all out for yourselves!

MQ Light is available now athttps://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 36: An introduction to mq light and bluemix

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 37: An introduction to mq light and bluemix

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 38: An introduction to mq light and bluemix

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