App Connect

App Connect

Join this online user group to communicate across IBM product users and experts by sharing advice and best practices with peers and staying up to date regarding product enhancements.


#Applicationintegration
#App Connect
#AppConnect
 View Only
Expand all | Collapse all

Can we use Application server as a Node in IIB?

Juan José García-Navas García-Parrado

Juan José García-Navas García-ParradoWed November 22, 2017 12:12 PM

  • 1.  Can we use Application server as a Node in IIB?

    Posted Mon November 20, 2017 04:18 PM

    Hi! Does someone mind letting me know what the difference between IIB and websphere application Server is? Can we use Application server as a Node in IIB?



  • 2.  RE: Can we use Application server as a Node in IIB?

    Posted Wed November 22, 2017 12:12 PM

    Hi,

    I will try to explain in a easy way.
     
    WebSphere Application Server is a JEE platform in order to deploy and run applications developed in Java under this specification.

    IIB is a multi-purpouse integration product that includes several connectors to many protocols, third-party products and vendors in order to easyly build integration flows to meet any integration need. The code used may be ESQL or Java.

    In IIB yo can user a HTTP/S node to integrate against a application executed into WAS or another HTTP/S provider.

     

    Best regards.

     

    Juanjo.



  • 3.  RE: Can we use Application server as a Node in IIB?

    Posted Mon November 27, 2017 05:43 AM

    In addition to the explanation before...

    IIB is strong regarding messaging & message brokerage and has some support for Java.

    WAS is strong regarding Java EE (web applications and more) and has Java Messaging support, so that it can also do some messaging & message brokerage. 

    So there is some overlap and you have to analyse the use case to decide if to use IIB, WAS or both. 

    You can integrate WAS with IIB easily via queues provided by IIB or WAS.

    WAS can then be used as frontend application which provide a web page with input fields and then contacts the IIB via JMS to get data, renders the data and present it to the user as a resulting web page for example.



  • 4.  RE: Can we use Application server as a Node in IIB?

    Posted Wed November 29, 2017 10:26 AM

    Hi Dixie,

    I would also like to weigh in on a response. It is easy to confuse things, especially when going across products, due to terminology.

    So IIB, or IBM Integration Bus, is as the name implies our flagship integration product, providing tools specifically designed to make integrating between various endpoints, applications, protocols, and message formats quick and simple. IIB has the ability to directly connect to almost any endpoint or application, including traditional on premise applications such as SAP or JD Edwards, as well as cloud applications such as Saleforce. It has the ability to use web services or REST when talking over HTTP or HTTP/S, so can easily call or consume services providing on WAS or other JEE runtimes. IIB also, as mentioned, is very strong in the messaging area, including support for IBM MQ and JMS, which is another way it could integrate with WAS. IIB can easily map between different message formats, using graphical tooling, and it can also easily swap among protocols, so for example have a mediation exposed via a REST API (yes it can build APIs too), but then makes an MQ call to some backend system to access the data. IIB has abilities to build simple mediations, or very complex, such as using aggregation to access multiple systems and aggregate the results into a single response. IIB also gives you great flexibility. The goal is to completely build a mediation using all graphical tooling. However, there are times where you want to code, or sometime reuse existing code, or simply need to drop to code to accomplish something. IIB allows you to code in Java, ESQL (think SQL 92 with programming constructs like "Do While, If Then Else, etc.), or C. IIB also has an embedded Node.js runtime. On WIndows, it also has an embedded .NET CLR runtime, allowing you to code in any .NET CLR supported language.

    So overall, IIB focuses on integration, where WAS focuses on providing a secure and reliable runtime for applications.

    To clarify the node question side of your query, IIB uses what is called a "node", which is an instance of the IIB runtime. An IIB node manages one or more "integration servers", which is where the mediations I described actually execute. So the IIB node basically manages the IIB runtime.

    Conversely, in WAS a node again is an instance of the runtime.

    So while the node concept is similar, they are totally different and you cannot use a WAS node within IIB. You can integrate in both directions, but not use WAS within IIB.

     

    Brian Wilson

    Executive IBM Cloud Middleware Connectivity & Integration Solution Architect
    Member of the IBM Academy of Technology
    North American IBM MQ Appliance Technical Leader
    Open Group Certified Distinguished IT Specialist
    IBM Certified SOA Solution Designer
    IBM Certified Specialist/Solutions Expert - WebSphere MQ V6/V7
    IBM Certified System Administrator/Solution Designer - WebSphere Message Broker V6/V7/V8
    IBM Certified Solution Designer/System Administrator - IBM Integration Bus V9.0&l



  • 5.  RE: Can we use Application server as a Node in IIB?

    Posted Wed November 29, 2017 12:41 PM

    With regard to the difference between IIB and WAS, Juan and Lars answered and Brian expanded on IIB's features. But given the significant overlap in IIB and WAS capabilities (already noted by Lars), are there any guidelines/best practices/patterns as to when to use one vs the other? Many of us (myself included) undoubtedly have opinions, but I'm looking for something like Redbooks or whitepapers at an architectural level that can help with those who might have "tool bias"--that want to use one of the tools in a way that, while may be workable, may not the best use of that tool, the gray areas of overlap. For instance,

    • IIB flows can contain code and access databases, but
      • should IIB only mediate (act as broker/bus), or is it ok to also consider it a (lightweight?) app server;
      • if it should only mediate how does one set boundaries for it not becoming an app server;
      • for instance, when does enriching data go so far that it becomes an application instead of a mediation?
    • WAS supports message-driven beans, but are there reasons why it might be better to consume the messages with IIB and then make HTTP API calls to WAS for the logic, or simply stay in IIB and code any logic there?
    • IIB can process files (vs messages), but what are best practices/boundaries regarding this--are there cases when it is better to avoid routing them through IIB and instead send them to perhaps a WAS Java Batch process?

    Again, I'm looking more for authoritative references than opinion with regard to the areas of overlap. Thanks



  • 6.  RE: Can we use Application server as a Node in IIB?

    Posted Wed November 29, 2017 01:35 PM

    Brian makes many good points. Of course there is some overlap, and MANY opinions on what is best. I always advocate that you should use the right tool for the job. We can make almost any IT tool solve almost any IT problem using brute force, via code or other methods. It is the old I have a hammer so everything is a nail approach -- or always pounding the square pegs through the round hole.

    So again, this is my opinion.

    Application servers are designed to run your "business logic" -- to run your applications that perform your business functions. That is what it is designed to do and what it does best.

    Now sure, you can do almost anything in Java. But Java and the constraints that the application server brings means that it is not the ideal location to do certain functions. There is a place for things like Java batch, but again, it should be for performing your business logic/applications. Same for messaging. Messaging within the application server should be for obtaining or distributing data that is directly produced or required by that business application.

    I would argue that anything more than that kind of simple exchange should be done by your integration layer -- whatever that is.

    In the case of IIB, IIB is designed from the ground up to be optimized to perform integration. It is NOT designed to host and execute business logic -- rather "integration logic" -- mediations to handle integration -- simple and especially complex -- in the movement and exchange of data between disparate applications -- including applications running in an application server.

    IIB allows the creation of integration logic graphically, to save time and negate the need for coding complex integration logic. This includes creating graphical maps to mediate between different message formats (think converting between an internal custom tagged delimited format and a large complex XML Schema), handling a large variety of protocols with ease, and doing all kinds of message enrichment such as reading different databases, calling out to web services and RESTful services, gathering or updating data in applications such as SAP, etc.

    And yes, as you mention, IIB can update databases, even with two-phase commit. But should it? Again, the answer is it depends. I would not propose you use IIB as an ETL tool and doing large batch updates. This is best done by an ETL tool. However, when handling real time data that is moving between endpoints, it certainly makes sense to do these kind of one at a time real time database updates inline within IIB.

    I mention "real time." And that is what IIB is designed for -- doing real time integration. However, again, you can make it do batch type work. Should you? Again it depends on what you are doing. I would argue against doing many large, long running batch style work within IIB, However, large file handling again is an area where IIB exceeds. And using the right patterns, you can try to minimize any restart or rework. Since IIB is optimized for such handling, I would often suggest using IIB for doing such a thing -- it depends on what you are doing with the file contents. If you need typical integration steps, such as transformation, augmentation, and delivery to critical systems, then I would say use IIB

    It is often a thought to start coding business logic in IIB -- and sure some customers do. But again, that is not what we suggest. I would argue that you call out to an application server or some service or API that performs that functionality. And while mentioning APIs, I would also argue that many APIs are best done within IIB (and of course I would argue you should use API Connect to manage and secure those APIs), because many APIs need integration. Sure if it is simple data retrieval, you can do that in Node or Java or whatever is desirable. But as soon as you start needing transformation, augmentation, correlation of data, etc., IIB does that best.

    It is indeed usually a challenge for customers to determine when to use IIB and when to use ETL and when to use an application server and when to use a gateway, etc. There is overlap in almost any set of tools. So again, I go back to the mantra to use the right tool for the job -- the tool designed for that purpose (unless the requirement is very light weight and the only requirement in that area of functionality). So really, customers, maybe working with IBM, should try to set standards on what types of use cases and functional requirements should be handled by what tool.

    I hope this helps. You can make arguments many ways. Here are some references that may be helpful:

     

    Executive IBM Cloud Middleware Connectivity & Integration Solution Architect
    Member of the IBM Academy of Technology
    North American IBM MQ Appliance Technical Leader
    Open Group Certified Distinguished IT Specialist
    IBM Certified SOA Solution Designer
    IBM Certified Specialist/Solutions Expert - WebSphere MQ V6/V7
    IBM Certified System Administrator/Solution Designer - WebSphere Message Broker V6/V7/V8
    IBM Certified Solution Designer/System Administrator - IBM Integration Bus V9.0&l



  • 7.  RE: Can we use Application server as a Node in IIB?

    Posted Wed November 29, 2017 01:56 PM

    Thanks for your thorough response, Brian, and the links to the specific Redbooks, which look promising.



  • 8.  RE: Can we use Application server as a Node in IIB?

    Posted Wed November 29, 2017 03:39 PM

    In re the older patterns Redbook suggested by Brian:  the product named "WebSphere Business Integration Message Broker" (aka, "WMB") is now called IIB.

    Other old names for IIB are "WMQ" and "MQSI".

     

    Jeff

     

    ETA:  Strike WMQ.  I had intended WMB but had, in fact, already mentioned it in the previous paragraph!



  • 9.  Can we use Application server as a Node in IIB?

    Posted Fri December 01, 2017 12:14 AM
    I don't think we have use WMQ for an old name for IIB, WMQ was WebSphere MQ before it became IBM MQ. Best regards / Vriendelike groete Francois van der Merwe
    WebSphere Team Lead
    +2782 556 9467
    fvdm@za.ibm.com IBM Cloud  



  • 10.  RE: Can we use Application server as a Node in IIB?

    Posted Fri December 01, 2017 02:18 AM

    But the console window commands start with 'mqsi' - e.g. mqsistart - so the assumption about 'MQSI' being an old name for IIB is valid



  • 11.  RE: Can we use Application server as a Node in IIB?

    Posted Fri December 01, 2017 10:12 AM

    Yes, the original name of the product was MQSeries Integrator (mqsi for short). It has gone through a series of name changes over the years. Currently named IBM Message Broker, it's previous name was WebSphere Message Broker. Prior to that, if I recall correctly, it was WebSphere Business Integration Message Broker.

    Executive IBM Cloud Middleware Connectivity & Integration Solution Architect
    Member of the IBM Academy of Technology
    North American IBM MQ Appliance Technical Leader
    Open Group Certified Distinguished IT Specialist
    IBM Certified SOA Solution Designer
    IBM Certified Specialist/Solutions Expert - WebSphere MQ V6/V7
    IBM Certified System Administrator/Solution Designer - WebSphere Message Broker V6/V7/V8
    IBM Certified Solution Designer/System Administrator - IBM Integration Bus V9.0&l



  • 12.  RE: Can we use Application server as a Node in IIB?

    Posted Fri December 01, 2017 12:19 PM

    Quite right.  Slip of the finger.  Not "WMQ".

     

    MQSI was bought from NEON (New Era of Networking) long ago.  I used their connectors, back in the day.

     

    Jeff



  • 13.  Can we use Application server as a Node in IIB?

    Posted Fri December 01, 2017 04:46 AM
    Yah, correct, it used to be called MQ Series Integrator if I remember correctly .... long time ago Best regards / Vriendelike groete Francois van der Merwe
    WebSphere Team Lead
    +2782 556 9467
    fvdm@za.ibm.com IBM Cloud