42
© 2014 IBM Corporation 1896 - How to Develop Responsive Applications with IBM MQ Light (beta) Matthew Whitehead WebSphere MQ Development

How to develop responsive applications with ibm web sphere mq light

Embed Size (px)

DESCRIPTION

An introduction to developing applications quickly and easily using IBM's MQ Light beta and node.js

Citation preview

Page 1: How to develop responsive applications with ibm web sphere mq light

© 2014 IBM Corporation

1896 - How to Develop ResponsiveApplications with IBM MQ Light (beta)

Matthew WhiteheadWebSphere MQ Development

Page 2: How to develop responsive applications with ibm web sphere mq light

© Copyright IBM 2014

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 3: How to develop responsive applications with ibm web sphere mq light

© Copyright IBM 2014

• 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.

• 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

Page 4: How to develop responsive applications with ibm web sphere mq light

© 2014 IBM Corporation

Agenda

- Introduction & Background - Use-case and features - A new messaging API - Deploying apps & IBM BlueMix - Demo

Page 5: How to develop responsive applications with ibm web sphere mq light

© Copyright IBM 2014

IBM Messaging Focus Areas

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

Capture Big Data from Mobile and Internet of ThingsFocus on Internet-scale events, m2m device enablement, zero-admin, security and privacy, feed into real-time analytics, location-based notifications

Enable Developers to build more scalable, responsive applicationsFocus on new app dev use cases, breadth of languages, ease-of-deployment, lightweight services, integration with developer frameworks

Page 6: How to develop responsive applications with ibm web sphere mq light

© Copyright IBM 2014

What is “Application Messaging”?

JonIT mgmt

Must use approved IT services

Share, re-use and save!

Demand for Infrastructureservices

AndyDeveloper

IainInfrastructure Guy

BethBusiness Sponsor

Reduced pull for servicesAndy

DeveloperIainInfrastructure Guy

What handy tools can I grab?

6

Organisations moving in this direction

Page 7: How to develop responsive applications with ibm web sphere mq light

© Copyright IBM 2014

The journey that got us here…

7

Ruby

Node.js

Python

C

C++

Java

C#

Perl

Go

Clojure

Lua

Erlang Scala

PHP

Page 8: How to develop responsive applications with ibm web sphere mq light

© Copyright IBM 2014

What is 'Andy' the developer like?

Driven to produce applications that can be field tested in the minimum time possible

Discovers technology that are prevalent in his communities

Uses the best tool for the job

Intolerant of process / company mandates / imposed technology that do not obviously and immediately benefit his application

8

Page 9: How to develop responsive applications with ibm web sphere mq light

© Copyright IBM 2014

Some more background

WebSphere MQ is a fully featured messaging product that caters for even the most advanced messaging topologies

It has support for a wide array of languages, platforms, architectures, qualities of service, topology types, high availability configurations, workload balancing etc...

However, while administrators tend to be well skilled in MQ technologies, application developers tend not to be.

Architects are being asked to do more with less

These are just some of the graphics from the Intro to MQ presentation

Application developers have less time to learn the MQ product thoroughly

Page 10: How to develop responsive applications with ibm web sphere mq light

© Copyright IBM 2014

What is MQ Light (beta)?

1. A new messaging API

1. A messaging runtime for on-premise developmentand deployment

1. A PaaS messaging runtime for admin-free clouddeployment (Elastic MQ service)

More on all of these throughout the slides...

Page 11: How to develop responsive applications with ibm web sphere mq light

© 2014 IBM Corporation

Agenda

- Introduction & Background - Use-case and features - A new messaging API - Deploying apps & IBM BlueMix - Demo

Page 12: How to develop responsive applications with ibm web sphere mq light

© Copyright IBM 2014

A Typical Developer's Use-Case

I want to execute code without taxing my Web app processes

Web Applications WorkersMessage Queues

Page 13: How to develop responsive applications with ibm web sphere mq light

© Copyright IBM 2014

Application Messaging Features

Our new messaging offering will focus on the developer...

•A simple API

•Developer-oriented download & install process

•Web based tooling

•Open-source technologies

•Easy to deploy apps to a PaaS environment

e.g. client.connect() client.send() client.subscribe() client.unsubscribe()

Page 14: How to develop responsive applications with ibm web sphere mq light

© Copyright IBM 2014

Developer oriented download & install

We're addressing the inhibitors to developer approval

Removing the sign-in step from the download process

Removing the need to run an installer,allowing the product to be unzipped toany location

Ensuring we don't require intrusive OS changes, e.g. altering the registry, setting up users

Developer-centric platform support (see next slide)

Providing a more developer-centric look & feelto the download site and support pages

Page 15: How to develop responsive applications with ibm web sphere mq light

© Copyright IBM 2014

Appropriate Platform Support

Developer-centric rather than enterprise-centric platforms

– The beta currently has support for:

• Microsoft® Windows® 7• RedHat Enterprise Linux 6 64-bit

– We recognise the importance of platforms and we'll be looking at support for them during the beta, such as:

• Ubuntu• Mac OS X• Suse Linux

z/OS, IBM i, Solaris®, AIX or HP-UX® are not our target platforms

Page 16: How to develop responsive applications with ibm web sphere mq light

© 2014 IBM Corporation

Agenda

- Introduction & Background - Use-case and features - A new messaging API - Deploying apps & IBM BlueMix - Demo

Page 17: How to develop responsive applications with ibm web sphere mq light

© Copyright IBM 2014

Simple APIBetter suited to rapid application development

Basic administration built into the API

• Creating endpoints, configuring connectivity to existing systems etc.

Based on AMQP 1.0

• Open protocol to encourage community development• Intention is to open-source the clients (statement of direction)

• Language-specific libraries will be provided so the developer doesn't code directly to the AMQP spec

• Node.js currently available in the MQ Light alpha available online

Designed to fit in with what developers are used to

• How quickly and easily can client libraries be added to your runtime of choice?

• Libraries available via appropriate repositories e.g. npm install mqlight

Page 18: How to develop responsive applications with ibm web sphere mq light

© Copyright IBM 2014

Current ideas for API features

● Message content● Text and Binary message types● Message properties

● Message delivery● TTL on messages● TTL on destinations● Delivery delay● Read-ahead buffer● Require-subscriber (fail publish if no subscribers)

● Quality of service● At most once message delivery● At least once message delivery● Acknowledgement of messages in client or application

(Bold = available in beta today, otherwise ideas for future beta updates)

Page 19: How to develop responsive applications with ibm web sphere mq light

© Copyright IBM 2014

Node.js API design● Uses callbacks on most API functions, e.g.

client.connect(function(err) { If (err) { console.log(“Connection failed!”); }});

● State-change callbacks

client.on('connected', function() { console.log("Connection made”); console.log("About to published our first message...”); …});

● No plans to use Promises in the API

● Better suited to callbacks which are only called once

Page 20: How to develop responsive applications with ibm web sphere mq light

© Copyright IBM 2014

Node.js API design

● Whatever object is passed into the send is received by the subscriber

client.send(topic, “Hello World”); // Receiver gets a stringclient.send(topic, new Buffer([12,32]); // Receiver gets a bufferclient.send(topic, {color:'red',size:'10'}); // Receiver gets JSON

● Many function parameters optional

// Simple publishclient.send(“sports/football”, “Arsenal 1, ManU 0”);

// Publish with some optionsclient.send(“sports/football”, “Arsenal 1, ManU 0”,

{deliveryDelay:1000, ttl:100});

// Publish with options and a callbackclient.send(“sports/football”, “Arsenal 1, ManU 0”,

{deliveryDelay:1000, ttl:100},function(err) { // Handle failed send });

Page 21: How to develop responsive applications with ibm web sphere mq light

© Copyright IBM 2014

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 22: How to develop responsive applications with ibm web sphere mq light

© Copyright IBM 2014

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 23: How to develop responsive applications with ibm web sphere mq light

© Copyright IBM 2014

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 24: How to develop responsive applications with ibm web sphere mq light

© Copyright IBM 2014

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 25: How to develop responsive applications with ibm web sphere mq light

© Copyright IBM 2014

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 26: How to develop responsive applications with ibm web sphere mq light

© Copyright IBM 2014

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 27: How to develop responsive applications with ibm web sphere mq light

© 2014 IBM Corporation

Agenda

- Introduction & Background - Use-case and features - A new messaging API - Deploying apps & IBM BlueMix - Demo

Page 28: How to develop responsive applications with ibm web sphere mq light

© Copyright IBM 2014

Application Messaging Deployment Options

MQ Light Runtime(beta)

On-premise application messaging

Deploys

IBM WebSphere MQEnterprise messaging(statement of direction)

Deploys

Deploys

IBM MQ Light Development Kit (beta)

Tooling for developer platforms

Write apps in node.js

Elastic MQ inIBM BlueMix(beta)

Public cloud messaging

Page 29: How to develop responsive applications with ibm web sphere mq light

© Copyright IBM 2014

Application Messaging Deployment Options

MQ Light Runtime(beta)

On-premise application messaging

Deploys

IBM WebSphere MQEnterprise messaging(Statement of direction)

Deploys

Deploys

IBM MQ Light Development Kit (beta)

Tooling for developer platforms

Write apps in node.js

Elastic MQ inIBM BlueMix(beta)

Public cloud messaging

Page 30: How to develop responsive applications with ibm web sphere mq light

© Copyright IBM 2014

IBM MQ Light – for on-premise deployment

Some developers will like the new APIs but won't want to deploy to a PaaS

– Small line-of-business projects, e.g. queueing up builds

– No mission critical features

• No HA• No horizontal scaling

MQ Light will probably be available to license as the production runtime for messaging applications

– Specific licensing plan not yet finalised– Looking at licensing models that work for development teams

Fully compatible with the IBM Elastic MQ service in BlueMix

– Easy to migrate applications to a PaaS at a later point

Page 31: How to develop responsive applications with ibm web sphere mq light

© Copyright IBM 2014

Application Messaging Deployment Options

IBM MQ Light Development Kit (beta)

Tooling for developer platforms

Write apps in node.js

MQ Light Runtime(beta)

On-premise application messaging

Deploys

IBM WebSphere MQEnterprise messaging(statement of direction)

Deploys

Deploys

Elastic MQ inIBM BlueMix(beta)

Public cloud messaging

Page 32: How to develop responsive applications with ibm web sphere mq light

© Copyright IBM 2014

IBM Elastic MQ service - Messaging in a PaaS

MQ currently offers cloud deployment options in a couple of flavours

– IBM Messaging Extension for Web Application Pattern (IBM PureApp, IBM WD)– WebSphere MQ Hypervisor Edition for AIX/RHEL

We also have a beta version of Elastic MQ running in the IBM BlueMix PaaS

– Admin-free experience– MQ environment automatically provisioned for each user when they request an

instance of it– Applications are linked or 'bound' to the provisioned environment automatically

when they are deployed to BlueMix– The MQ Light team are working with BlueMix to offer a seamless development-to-

production experience.– Not a full MQ experience in the cloud

Page 33: How to develop responsive applications with ibm web sphere mq light

© Copyright IBM 2014

How does MQ Light fit in PaaS development?The intention is for MQ Light to provide a (probably free) development environment for applications that will deploy against IBM Elastic MQ in BlueMix

Gives the developer 2 choices for development:

1. Develop directly in BlueMix. As you make changes toyour code you push the new version straight to BlueMixand check your changes are OK

2. Develop on your laptop using MQ Light. Once you're90% complete, start pushing your app to BlueMix to tryit out in the cloud and iron out any remaining bugs.

MQ Light offers an offline development environment

– Provides a development version of the messaging service that will be offered in the cloud

– Makes offline application development possible when connectivity to the cloud is not available

– Comparatively small download & install footprint to get you started quickly & easily

Page 34: How to develop responsive applications with ibm web sphere mq light

© Copyright IBM 2014

Download & Install Experience

www.ibmdw.net/messaging/mq-light/

Page 35: How to develop responsive applications with ibm web sphere mq light

© Copyright IBM 2014

Web Based Tooling

Page 36: How to develop responsive applications with ibm web sphere mq light

© Copyright IBM 2014

Try it all out for yourselves!

MQ Light beta is available to try out now athttps://www.ibmdw.net/messaging/mq-light/ or Google “IBM MQ Light”

Elastic MQ is available in IBM BlueMix beta today at https://ace.ng.bluemix.net/ or Google “IBM BlueMix”

Page 37: How to develop responsive applications with ibm web sphere mq light

© Copyright IBM 2014

Try out MQ Light and join the discussions on our forum

www.ibmdw.net/messaging/mq-light/

We want your feedback on what we're doing

Page 38: How to develop responsive applications with ibm web sphere mq light

Related Sessions

AMC1897 : Messaging in the Cloud with Elastic MQ, MQ Light & BluemixToday 3:45pm – 4:45pm Delfino 4005

AMC1924 : Roundtables; MQ Light in IBM MQ InfrastructuresWednesday 2:15pm – 3:15pm Zeno 4701Thusday 9:00am – 10:00am Zeno 4701

AMC1917 : Hands-on Lab: MQ Light & Elastic MQWednesday 10:30am – 11:30am Murano 3305

Page 39: How to develop responsive applications with ibm web sphere mq light

Questions?

Page 40: How to develop responsive applications with ibm web sphere mq light

© Copyright IBM 2014

We Value Your Feedback

Don’t forget to submit your Impact session and speaker feedback! Your feedback is very important to us – we use it to continually improve the conference.

Use the Conference Mobile App or the online Agenda Builder to quickly submit your survey

• Navigate to “Surveys” to see a view of surveys for sessions you’ve attended

40

Page 41: How to develop responsive applications with ibm web sphere mq light

Thank You

Page 42: How to develop responsive applications with ibm web sphere mq light

© Copyright IBM 2014

Legal Disclaimer

• © IBM Corporation 2014. All Rights Reserved.• The information contained in this publication is provided for informational purposes only. While efforts were made to verify the completeness and accuracy of the information contained

in this publication, it is provided AS IS without warranty of any kind, express or implied. In addition, this information is based on IBM’s current product plans and strategy, which are subject to change by IBM without notice. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, this publication or any other materials. Nothing contained in this publication is intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing the use of IBM software.

• References in this presentation to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates. Product release dates and/or capabilities referenced in this presentation may change at any time at IBM’s sole discretion based on market opportunities or other factors, and are not intended to be a commitment to future product or feature availability in any way. Nothing contained in these materials is intended to, nor shall have the effect of, stating or implying that any activities undertaken by you will result in any specific sales, revenue growth or other results.

• If the text contains performance statistics or references to benchmarks, insert the following language; otherwise delete: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.

• If the text includes any customer examples, please confirm we have prior written approval from such customer and insert the following language; otherwise delete:All customer examples described are presented as illustrations of how those customers have used IBM products and the results they may have achieved. Actual environmental costs and performance characteristics may vary by customer.

• Please review text for proper trademark attribution of IBM products. At first use, each product name must be the full name and include appropriate trademark symbols (e.g., IBM Lotus® Sametime® Unyte™). Subsequent references can drop “IBM” but should include the proper branding (e.g., Lotus Sametime Gateway, or WebSphere Application Server). Please refer to http://www.ibm.com/legal/copytrade.shtml for guidance on which trademarks require the ® or ™ symbol. Do not use abbreviations for IBM product names in your presentation. All product names must be used as adjectives rather than nouns. Please list all of the trademarks that you use in your presentation as follows; delete any not included in your presentation. IBM, the IBM logo, Lotus, Lotus Notes, Notes, Domino, Quickr, Sametime, WebSphere, UC2, PartnerWorld and Lotusphere are trademarks of International Business Machines Corporation in the United States, other countries, or both. Unyte is a trademark of WebDialogs, Inc., in the United States, other countries, or both.

• If you reference Adobe® in the text, please mark the first use and include the following; otherwise delete:Adobe, the Adobe logo, PostScript, and the PostScript logo are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States, and/or other countries.

• If you reference Java™ in the text, please mark the first use and include the following; otherwise delete:Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.

• If you reference Microsoft® and/or Windows® in the text, please mark the first use and include the following, as applicable; otherwise delete:Microsoft and Windows are trademarks of Microsoft Corporation in the United States, other countries, or both.

• If you reference Intel® and/or any of the following Intel products in the text, please mark the first use and include those that you use as follows; otherwise delete:Intel, Intel Centrino, Celeron, Intel Xeon, Intel SpeedStep, Itanium, and Pentium are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries.

• If you reference UNIX® in the text, please mark the first use and include the following; otherwise delete:UNIX is a registered trademark of The Open Group in the United States and other countries.

• If you reference Linux® in your presentation, please mark the first use and include the following; otherwise delete:Linux is a registered trademark of Linus Torvalds in the United States, other countries, or both. Other company, product, or service names may be trademarks or service marks of others.

• If the text/graphics include screenshots, no actual IBM employee names may be used (even your own), if your screenshots include fictitious company names (e.g., Renovations, Zeta Bank, Acme) please update and insert the following; otherwise delete: All references to [insert fictitious company name] refer to a fictitious company and are used for illustration purposes only.