вторник, 27 августа 2013 г.

Message Broker – Design Time


Message Broker Toolkit is a IDE for WebSphere Message Broker. It available for Windows and Linux OSs.
Each developer installs own instance of Toolkit.
The main project  types (like JavaProject, WebProject, EJBProject in eclipse) for WMB are:

  • Message Flow Project are the projects where you define logic of processing messages in your application (message flow)
  • Message Set Project are the projects where you define format of messages in your application.

All these artifacts compile into “.bar” files (liken “.ear” in jee) and may be installed (deployed) on runtime.
Through Toolkit you may connect to runtimes and deploy “bar”-files from IDE. Also for deploying bar-files you may use command console (mqsideploy command) and message broker explorer gui.

Message Broker – Runtime

On one installation WMB you may create a lot of broker runtime instances (like you may create a lot of database on one installation). Also each broker runtime may contains a lot of execution group.
From the perspective of the operating system:
Bipbroker, bipservice, biphttplistener – management processes of each broker
DataFlowEngine – process for each execution group

WebSphere MQ

I have forgotten about one big thing – it is WebSphere MQ.
WebSphere MQ – it is Message Oriented Middleware. Using this middleware different applications (host on Linux and Windows,  using different languages (java, c/c  , c#, etc) can communicate with each other.

How it works:
There is “Queue Manager” that hosts “Queues”. Queue is some kind of named storage area  (such as table in database). There are the messages – are a data that you want to send to other application. So one application may put (write) message to the Queue, and other application can get (read) this message. If you need two-way communication – use two queues: first for App1->App2, second for App2->App1.
WMQ has a lot of API for different languages: java, c/c  , c#, Visual Basic, COBOL, RPG(z/OS). And application written in different language through these APIs can put/read messages to Queue Manages.

Remark about JMS and WMQ. WMQ in contract to JMS is proprietary technology. JMS is means API that may be implemented by different vendors  but WMQ is API and Middleware (Queue manager).

Why WMQ is important for us?
Because WMB infrastructure (inside) built over WMQ. A plenty internal mechanisms like aggregation, security, management, logging/monitoring etc. built over WMQ.
MQ is a native transport protocol for WMB and this protocol is most common used in WMB applications.
MQ can provide assured once-only delivery of messages that a very important for real production integration solutions.


понедельник, 26 августа 2013 г.

Platform architecture

In this post I will not explain the insides of message broker. I want  to explain that you have to have to use (develop, run) on WMB.
There are three main parts:

  • Runtime – it is websphere message broker itself. It is the “place” where your code (application)  works. You may liken it to “Application Server”. Runtime has “Execution groups” – it is named OS processes that host and execute applications. Into EG you deploy applications, which generally includes:
    • Message Sets – descriptions of message format (liken XSD)
    • Message Flow – compiled code, that hosts application logic.
  • Design Time – it is Message  Broker Toolkit. It is eclipse-based IDE(Integrated Development Environment) where you develop you code (application). Repository at picture below means some version control system which you can include to store source codes.
  • Management – its are Message Broker Explorer and  Command console. You may use its to deploy applications, start/stop runtime and so on.

пятница, 16 августа 2013 г.

What is WebSphere Message Broker?


Formal definition  (non vendor definition, as IBM has no single simple definition about that product :) ): WMB is a middleware software using which you able provide interaction heterogeneous applications regardless formats and protocols, supported by that applications.
In simple terms: if you want  (or maybe someone put you to task)  to provide transferring data between different application that supported different protocols – you  may solve this task using WebSphere Message Broker.
Remark: Often you may see close placed terms Message Broker, ESB, SOA. We will discuss this definitions later. But now you have to understand – SOA  and ESB are the patterns (or concepts) while Message Broker – is a tool. You may made some solutions using tool WMB and this solutions will be build accordingly service oriented architecture (SOA). But not all solutions are made using WMB will be SOA solution.
WMB supports a lot of transport protocols:
WebSphere MQ
JMS
HTTP , Web Services (REST and SOAP)
File
ODBC, JDBC
Enterprise Information Systems (including SAP and Siebel)
TCP/IP
Also it supports a lot of data formats:
XML
CWF(Custom Wire Format, binary formats)
TDS (Tagged delimited string)
industry standards (including SWIFT, EDI, and HIPAA)

Same time, WMB supports different integration patterns and mechanisms such: routing, transformation, filtering, enrichment, monitoring, aggregation, corellation.

So, one of the main feature of  WMB, that it already supports plenty transport protocols ,data formats and integration patterns. Developers have not to worry about it's. In most cases developer will not implement some protocols or data parsers  itself or include some 3rd party libraries or facilities, because its already supported by WMB.


About this blog

Who am I? My  name  is Roman and my occupation is design and development integration solutions.  In this blog I would like to made brief description of IBM Integration Bus (former  WebSphere Message Broker) integration platform.
What  was the cause because I decided to blog? I believe, that this platform is very powerfull and not so difficult to study. But I have not saw any small simple book that explains this platform. Yes, there are a lot of materials about that platform at vendor portal (IBM company). But it is difficult for newbies find simple answers on questions like “What is it?”, “How can I make ‘Hello World’ application?” and so on.
Materials in this blog will be based on education program, that a prepared for my collegues in order to lecture for them. Blog will include both theoretical  and lab materials.
For complete all labs you will have to install proprietary software WebSphere MQ, WebSphere Message Broker that you can get at IBM company internet site ( installation procedure will be explained in first lab).