Skip to main content

Posts

Showing posts from May, 2014

Red Hat OpenShift xPaaS - Simple MQTT with OpenShift, Part One, Create A-MQ broker with MQTT protocol on Openshift

This demo will be divided into 2 parts, first is to setup the Messaging broker on OpenShift with MQTT Connector. Then we are going to write a simple demo trying to connect to the broker via MQTT

Openshift is the open and unified Platform-as-a-Service (PaaS) offering for enterprises from Red Hat. So developers like me don't have to go through all the hassle about setting up the environments or managing the networks.

And as I mentioned in the previous blogs, MQTT is a very "lightweight " protocol. It is design for remote client with limited bandwidth to deliver messages. MQTT has small footprint, consumes less power, small data packets. It's goal is simply deliver messages to the message broker, the broker is then responsible to pass on the messages to other endpoints

In this blog, I will show you how to create a A-MQ Broker running MQTT connector in OpenShift.

Before you start, please make sure you have successfully create a account on OpenShift.

First of all, create…

Red Hat OpenShift xPaaS - 在OpenShift上簡單的MQTT Demo, (一), 在Openshift 上建立一個通MQTT 協定的Broker

這個demo 我會把它分成兩個部分,第一部分是在OpenShift上面建立一個有MQTT通訊協定的訊息的Broker。然後在第二部分就是寫一支簡單的小程式去連接雲端上的Broker.

OpenShift 是紅帽提供的一個開放,統一的Platform-as-a-Service (PaaS 平台即服務) 。所以向我們這種完全不想管環境設定,安裝還有網路設定的開發者可以跳過這些(無趣?) 的部分,直接就來開發拉!
好像我之前的文章講的,MQTT是鍋非常"羽量等級"的通訊協定,這個是設計給那種遠端,沒有啥頻寬可以送訊息用的客戶端用。MQTT 沒有很大的負擔,比較小的封包而且不會太耗電。它存在就是為了把訊息送到訊息Broker 為止。Broker 之後在自己想辦法把收到的訊息往外送。

所以,這次的內容就是如何在Openshift 上建立一個通MQTT 協定的Broker。
在開始之前,請先到Openshift (www.openshift.com)上面註冊一的帳號喔!

註冊完請登入,首先,我們要先建立一個Fuse 6.1的應用程式。



在完成建立Fuse 6.1 的應用程式後,你就會看到下面這個資訊業面。乾脆把這頁的東西都備份下來。因為以後忘了還可以查。


到Fuse Console 的頁面,然後登入。(在上一頁 的Console URL.)
在Runtime, MQ 的頁面右方,按下+broker 開始建立一個A-MQ 的 Broker






輸入broker 的名字,(然後我們這次用Standalone 的模式), 這裡請注意,請全部都小寫,不然有的時候Openshift 會有一些怪怪的舉動,相信他們很快就會修好了吧。所以暫時請先全部小寫。最後按下Create Broker.


所以我們現在已經創立了一個A-MQ 的設定檔。在畫面上會有紅色的錯誤,那是因為我們還沒有建立執行這個設定檔的執行容器所導致的。所以請按下下面有三角形的驚嘆號那裡去建立執行容器。

Red Hat JBoss A-MQ - A-MQ in Internet of Things, Sensor transmitting vital signal to Biomedical dashboard via AMQP

I was amazed by the increasing number of people mentioning "Internet of Things" in the recent conversations, if you already know what IoT is, please skip this part and go straight to my demo. :)

From Wiki,

"The term Internet of Things was proposed by Kevin Ashton in 1999,... it originally refers to uniquely identifiable objects and their virtual representations in an Internet-like structure. ...... Today however, the term Internet of Things is used to denote advanced connectivity of devices, systems and services that goes beyond the traditional machine-to-machine (M2M) and covers a variety of protocols, domains and applications."

From my understanding, is that more and more light weight, hand carry device or smart appliance are produce and manufactured. All these device works great on it's own, such as mobile phone,  TVs, GPS or even sphygmomanometers. But they work even better with the internet, by transmitting their live data, we were able to get better and …

Red Hat JBoss A-MQ - A-MQ 在物聯網上的應用,生物感應器Sensor 透過AMQP通訊協定傳送資料

最近越來越多人在談物聯網(Internet of Things,簡寫 IoT ),如果你已經知道物聯網,那請直接跳過,直接往Demo 奔去吧。什麼是物聯網?根據我幫大家Google 過後的定義如下,

"物聯網(The Internet of Things)的概念是在1999年提出的,它的定義:把所有物品通過射頻識別等信息感測設備與互聯網連接起來,實現智能化識別和管理。"

簡單來說,在古早的年代,會聯結上網路的,通常都是一台電腦,可是因為科技的日新月異,網路越來越發達,手持裝置(手機,智慧型眼鏡,血壓計),家電設備(冰箱,電視,烤箱),行車器材(GPS, 行車記錄器)等等,都可以透過不同的雲端技術連接上網。而這些裝置會將大量的資料傳送上網(或者你也可以說,雲端)。不過你想想,當這些龐大的資料同時傳送,而且每一項設備裝置都可能使用不同的通訊協定以及方式,那我們要用什麼樣的東西去接收,才能確保資料穩定接收的成功呢?

這時,一項"古老"的技術,又被人們想起來了。也就是訊息平台 Messaging Platform. 因為它可以大量接受訊息然後同時傳送,或是可以佇列式的讓訊息排隊等待處理的天性。而最近又因應不同的裝置,而發展了屬於不同狀況可以使用的通訊協定。

STOMP (Streaming Text Oriented Messaging Protocol)
=========================================
完全是純文字的通訊協定,所以不管是什麼語言,或是哪家的訊息Broker 都可以支援。
也因為它是純文字,在效能上可能就不及其他的通訊協定。


MQTT (MQ Telemetry Transport)
======================================
這算是所有通訊協定裡面最"輕量"的,因為他是專門設計給再遠端的連接方,沒有太好的網路頻寬。因此它擁有 "small code footprint" 。它只能很簡單的把訊息送達Broker, Broker 接收訊息後,如果有需要,會再把訊息導到需要這個訊息的地方。

AMQP (Advanced Message Queuing Protocol)
====================…

Red Hat A-MQ - Create cluster of brokers support AMQP in Fabric

In this tutorial, I am going to show you how to create a cluster of message broker using the built-in management platform Fabric. This make life much much easier to either config and manage brokers.

Please obtain a copy of JBoss A-MQ by going to
http://www.jboss.org/products/amq.html
and download JBoss A-MQ from Red Hat.

Here are the summary steps to create.

1. Unzip to install
2. Create User
3. Startup A-MQ server
4. Create Fabric
5. Create A-MQ broker profile
6. Create the container
7. Create a new version and apply AMQP Setting
8. Container version rolling upgrade
9. Test it.



To install simply unzip the jboss-a-mq-version.redhat-x.zip file to a directory.

Before starting up JBoss A-MQ, we need to set a default user.
Open up  $A-MQ_INSTALLATION_PATH/etc/users.properties 
Remove the # before admin=admin,admin


or you can add your own prefer user id,  password and role.
(USER=PASSWORD,ROLE1,ROLE2,...)


Go to $A-MQ_INSTALLATION_PATH/bin , startup A-MQ by executing

Unix/Linux,
             …

Red Hat A-MQ - 透過Fabric 建立 A-MQ 的叢集,並設定AMQP的通訊協定

為了服務網大的全球觀眾,以後我的部落格會有英文版與中文版同時存在。所以你們發現有英文版的時候,就是中文版也快粗來了。

這次分享的是如何透過Red Hat A-MQ 裡面內建的管理工具 Fabric, 去建立訊息的Broker. 因為有這個工具,可以讓你在大量部署的環境下也可以很輕鬆的管理設定.

請到下面的JBoss網站下載我們這次會用到的A-MQ
http://www.jboss.org/products/amq.html

我們這次大概會有以下的動作,

1. 解壓縮安裝
2. 建立使用者
3. 啓動A-MQ 伺服器
4. 建立 Fabric
5. 建立 A-MQ broker profile
6. 建立 執行容器(Container)
7. 建立新的Profile 版本,並且設定AMQP 通訊協定
8. Container 版本更新
9. 測試是否成功

安裝也是解壓縮 jboss-a-mq-version.redhat-x.zip到你想要的路徑下

啓動A-MQ 之前,需要先設定使用者,
$A-MQ_INSTALLATION_PATH/etc/users.properties 
把前面admin=admin,admin的#拿掉

or you can add your own prefer user id,  password and role.
如果你不想用預設值的話,可以自己建ID,密碼還有角色。
(USER=PASSWORD,ROLE1,ROLE2,...)


要啓動A-MQ, 到 $A-MQ_INSTALLATION_PATH/bin ,執行