Can Fuse ESB implement message broker and message queue - message

I'm a really newbie in ESB (you can say no experience).
And actually I haven't really understood the real meaning of ESB.
My expectation of ESB is a middleware that can connect to whatever the client is
(.NET, Flex, Ajax, Android, etc.).
And I expect that ESB can implement MESSAGE QUEUE.
Cause I'm really really interested in message queue.
I just tried Mule ESB.
I successfully created SOA request-response.
But it seems that Mule ESB doesn't have message queue.
AND MY QUESTION IS:
Is it possible for Fuse ESB to implement message queue?
Thank you,
Rizki Sunaryo

Yes Fuse ESB has a message broker embedded (its Apache ActiveMQ). So you have that out of the box with Fuse ESB.
You can also with Fuse ESB connect to an external message broker of choice, using JMS as the protocol. For example to connect to a WebSphereMQ, WebLogicAQ, etc.
There is also a standalone Fuse MQ product that is just the message broker. So if you only want a messaging system, then you can go for Fuse MQ.
You can find some details here
http://fusesource.com/products/fuse-esb-enterprise/
http://fusesource.com/products/fuse-mq-enterprise/
Red Hat has since acquired FuseSource so the Fuse products is being rebranded as JBoss Fuse, and JBoss A-MQ. You can find details here:
http://www.redhat.com/products/jbossenterprisemiddleware/fuse
http://www.redhat.com/products/jbossenterprisemiddleware/amq/

Related

Is there a reverse proxy for Solace Message Router?

IBM has MQIPT (IBM MQ Internet Pass-Thru) that acts as MQ forwarder/reverse proxy to implement messaging solutions between remote sites across the internet. Is there such an equivalence for Solace?
Solace has all kinds of fancy advanced features for load balancing and hybrid/multi-site deployments like bridges and dynamic message routing, but I don't really know those, and where's the fun in having everything ready-made and pre-solved for you anyway? :-)
So here I am going to assume you want to roll your own solution and use an actual reverse proxy:
You can switch to HTTP-based protocols, and just use any regular HTTP reverse proxy. Solace message brokers have a REST message interface, or if your application already uses the Solace API for messaging (or needs its advanced features), you can switch over to HTTP streaming or WebSockets as a transport by modifying the scheme portion of the broker URL in your application configuration. (http:// or ws:// instead of tcp://) This will only allow you to balance sessions, not individual messages within a single elephant flow.

How to create a REST API such as arest.io using Mosquitto

I would like to create cloud service like arest.io to access MQTT broker (Mosquitto) via REST API like it is on cloud.arest.io service. The main goal is bridge between mosquitto mqtt broker and apache2 http server to getting access to sepecific mqtt topics like:
cloud.arest.io/47fd9g/digital/5/1
where 47fd9g/digital/5/1 means publish "digital/5/1" in "47fd9g" topic. In the http response I can get JSON data from my IoT device connected to "47fd9g" topic. If you ever used the arest arduino library and arest.io cloud, You know what I mean. I have ubuntu based server with apache, php, mosquitto, php, Mosquitto-PHP php extension. Mosquitto works fine with my IoT device but I don't know how to mosquitto and apache make working toghether like arest.io.
There are a number PHP MQTT clients that you can use to write service as you describe, but you don't directly connect apache to mosquitto. You will have to write the bridge.
But encoding data into the URL as you suggest is not going to work well, it assumes that topics are only ever a single level deep which really doesn't scale well and doesn't allow the use of wildcards.
It would be better to have a HTTP POST to http://example.com/some/multi/level/topic, with the message payload as the body of the post would publish to a the topic some/multi/level/topic makes a lot more sense.

How to trigger an event from a web server to client en Delphi?

From a Web Server running in Windows 2012, I would need to send messages to specific clients. These clients are Delphi applications, over 2000. Each message is for a specific client, no broadcast.
Which technology can I use? I am totally new on this issue.
I am seeing Websockets, SignalR (that is based in Websockets), MSMQ, RabbitMQ, ...
MSMQ: Seems a good solution. Cons: It only works in Windows. Maybe in a future, I need to add other platforms as clients.
RabbitMQ: It is also good,but I think that it provides too features for my scenario. Basically I only need to send messages from server to specific clients.
SignalR: I am confused. It seems basically for web browsers, not for client applications. It seems a simple solution.
Basically, I am looking a simple and basic solution that I can implement in Delphi to receive messages from a web server.
WebSocket (a HTTP upgrade) is a light-weight option and also available for Delphi clients:
WebSocket is designed to be implemented in web browsers and web
servers, but it can be used by any client or server application. The
WebSocket Protocol is an independent TCP-based protocol.
See WebSocket client implementations for Delphi
RabbitMQ and other solutions are useful for example if the client could be offline while the server wants to send the message. The message broker provides a store where the message will be waiting for the client, even if the server restarts. Also a message broker will reduce load on the HTTP server.

WSO2 BAM - ESB sinchronization

Hello Stackoverflow & WSO2 community,
I want to thank you for the ongoing support from the beginning of my architecture building. I'm not much skilled at creating SOA solutions, and your support has been, is and will be much important.
While trying to solve the ESB problem, I was trying to connect BAM and ESB following the tutorial I found in wso2bam-1.3.2\samples\eventing-mode-mediation-monitoring.
My steps has been:
Adding the repository in WSO2 ESB;
Adding the "BAM Mediation Statistics Data Publisher" feature;
Enabling statistics on a simple service;
Adding the ESB server in the WSO2 BAM as: https://<ip-address>:9443/carbon/ or https://<ip-address>:9443/carbon/services, with
Data Collection Method: Eventing
Type of Data: Mediation;
Running the proxy service from an external client (Netbeans java application) - note that statistics were reported into the graphic near the proxy service of the ESB
Checking the BAM - but, for instance, the Service Calls gadget says:
No services found for the server https://<ip-address>:9443
I deduce something went wrong.
If you can help me again, I'm going to begin thinking about a way to give you some kind of useful feedback!
It seems BAM 1.3.2 seems to have an issue with the ESB. Could you try with BAM 1.3.0? It should just work.

ActiveMQ Modified Broker

I wanto to write a modified ActiveMQ broker that when he listens to producers' messages of a specific topic to handle them alternatively (use HDFS API for example and not use default persisten store). Do you have any ideas where to start with?
thanks in advance,
Petrucci
You could either implement your own ActiveMQ message store for HDFS which would allow ActiveMQ to use HDFS as a persistence store, or you could create an ActiveMQ broker plugin which would allow you to intercept messages as they enter the broker. Both are very different approaches, so it really depends on your requirements as to which path to take.
Bruce

Resources