# IBM App Connect Enterprise

IBM App Connect Enterprise (abbreviated as IBM ACE, formerly known as IBM Integration Bus (IIB), WebSphere Message Broker (WMB), WebSphere Business Integration Message Broker (WBIMB), WebSphere MQSeries Integrator (WMQI) and started life as MQSeries Systems Integrator (MQSI). App Connect IBM's integration software offering, allowing business information to flow between disparate applications across multiple hardware and software platforms. Rules can be applied to the data flowing through user-authored integrations to route and transform the information. The product can be used as an Enterprise Service Bus supplying a communication channel between applications and services in a service-oriented architecture. App Connect from V11 supports container native deployments with highly optimised container start-up times.
IBM ACE provides capabilities to build integration flows needed to support diverse integration requirements through a set of connectors to a range of data sources, including packaged applications, files, mobile devices, messaging systems, and databases. A benefit of using IBM ACE is that the tool enables existing applications for Web Services without costly legacy application rewrites. IBM ACE avoids the point-to-point strain on development resources by connecting any application or service over multiple protocols, including SOAP, HTTP and JMS. Modern secure authentication mechanisms, including the ability to perform actions on behalf of masquerading or delegate users, through MQ, HTTP and SOAP nodes are supported such as LDAP, X-AUTH, O-AUTH, and two-way SSL.
A major focus of IBM ACE in its recent releases has been the capability of the product's runtime to be fully hosted in a cloud. Hosting the runtime in the cloud provides certain advantages and potential cost savings compared to hosting the runtime on premises as it simplifies the maintenance and application of OS-level patches which can sometimes be disruptive to business continuity. Also, cloud hosting of IBM ACE runtime allows easy expansion of capacity by adding more horsepower to the CPU configuration of a cloud environment or by adding additional nodes in an Active-Active configuration. An additional advantage of maintaining IBM ACE runtime in the cloud is the ability to configure access to your IBM ACE functionality separate and apart from your internal network using DataPower or API Connect devices. This allows people or services on the public internet to access your Enterprise Service Bus without passing through your internal network, which can be a more secure configuration than if your ESB was deployed to your internal on premises network.
IBM ACE embeds a Common Language Runtime to invoke any .NET logic as part of an integration. It also includes full support for the Visual Studio development environment, including the integrated debugger and code templates. IBM Integration Bus includes a comprehensive set of patterns and samples that demonstrate bi-directional connectivity with both Microsoft Dynamics CRM and MSMQ. Several improvements have been made to this current release, among them the ability to configure runtime parameters using a property file that is part of the deployed artifacts contained in the BAR ('broker archive') file. Previously, the only way to configure runtime parameters was to run an MQSI command on the command line. This new way of configuration is referred to as a policy document and can be created with the new Policy Editor. Policy documents can be stored in a source code control system and a different policy can exist for different environments (DEV, INT, QA, PROD).
IBM ACE is compatible with several virtualization platforms right out-of-the-box, Docker being a prime example. With IBM ACE, you can download from the global Docker repository a runtime of IBM ACE and run it locally. Because IBM ACE has its administrative console built right into the runtime, once the Docker image is active on your local, you can do all the configuration and administration commands needed to fully activate any message flow or deploy any BAR file. In fact, you can construct message flows that are microservices and package these microservices into a Docker deployable object directly. Because message flows and BAR files can contain Policy files, this node configuration can be automatic and no or little human intervention is needed to complete the application deployment.

## Features

IBM represents the following features as key differentiators of the IBM ACE product when compared to other industry products that provide the services of an Enterprise Service Bus or Micro-services integration service:
* Simplicity and productivity
** Simplified process for installation: The process to deploy and configure IBM ACE so that an integration developer can use the IBM ACE Toolkit to start creating applications is simplified and quicker to complete.
** Tutorials Gallery: From the Tutorials Gallery an integration developer can install, deploy, and test sample integration flows.
** Shared libraries: Shared libraries are introduced in V10 to share resources between multiple applications. Libraries in previous versions of IBM Integration Bus are static libraries.
** Removal of the WebSphere MQ prerequisite: WebSphere MQ is no longer a prerequisite for using IBM ACE on distributed platforms, which means that you can develop and deploy applications independently of WebSphere MQ.
* Universal and independent
* Graphical data mapping
* Industry-specific and relevant
* Dynamic and intelligent
* High-performing and scalable
* Discovery Connectors
* Optimised container deployments
* Built-in unit testing, with mocks, batch creation of tests integrated with CI/CD pipelines.
IBM delivers the IBM ACE software either in traditional software install on your local premises to deploy to VM's, bare metal, container native on premise also IBM ACE is a key technology in IBM Cloud Pak for Integration (CP4i) or by an IBM administered cloud environment. The Integration services in a cloud environment reduces capital expenditures, increases application and hardware availability, and offloads the skills for managing an Integration service environment to IBM cloud engineers. This promotes the ability of end users to focus on developing integration flows rather than installing, configuring, and managing the IBM ACE software. The offering is intended to be compatible with the on-premises product. Within the constraints of a cloud environment, users can use the same development tooling for both cloud and on-premises software, and the assets that are generated can be deployed to either.

## History

Originally IBM partnered with NEON (New Era of Networks) Inc., a company that was acquired by Sybase in 2001. IBM 2000 wrote their product called 'MQSeries Integrator' (or 'MQSI' for short). Versions of MQSI ran up to version 2.0. The product was added to the WebSphere family and re-branded 'WebSphere MQ Integrator', at version 2.1. After 2.1 the version numbers became more synchronized with the rest of the WebSphere family and jumped to version 5.0. The name changed to 'WebSphere Business Integration Message Broker' (WBIMB). In this version the development environment was redesigned using Eclipse and support for Web services was integrated into the product. Since version 6.0 the product has been known as 'WebSphere Message Broker'. WebSphere Message Broker version 7.0 was announced in October 2009, and WebSphere Message Broker version 8.0 was announced in October 2011
In April 2013, IBM announced that the WebSphere Message Broker product was undergoing another rebranding name change. IBM Integration Bus version 9 includes new nodes such as the Decision Service node which enables content based routing based on a rules engine and requires IBM WebSphere Operational Decision Management product. The IBM WebSphere Enterprise Service Bus product has been discontinued with the release of IBM Integration Bus and IBM is offering transitional licenses to move to IBM Integration Bus. The WebSphere Message Broker Transfer License for WebSphere Enterprise Service Bus enables customers to exchange some or all of their WebSphere Enterprise Service Bus license entitlements for WebSphere Message Broker license entitlements. Following the license transfer, entitlement to use WebSphere Enterprise Service Bus will be reduced or cease. This reflects the WebSphere Enterprise Service Bus license entitlements being relinquished during the exchange. IBM announced at Impact 2013 that WESB will be end-of-life in five years and no further feature development of the WESB product will occur.
In 2018 IBM App Connect Enterprise V11 was released which enabled the deployment of container native micro-services style integration services as well as continued support of Enterprise Service Bus (ESB) deployments. In 2021 App Connect Enterprise V12 was released with many enhanced capabilities such as optimised container deployments reducing container start-up times and resource requirements. IBM App Connect Enterprise V12 also featured the use of 'Discovery Connectors', enabling integration developers to discover objects in systems such as Saas and Cloud, as well as discoverable on-premise applications.

## Components

IBM App Connect Enterprise consists of the following components:
* An integration server process hosts threads called message flows to route, transform, and enrich in-flight messages. Application programs connect to and send messages to the integration server, and receive messages from the integration server. Integration servers can exist independently or as part of a set owned by an integration node (formerly known as a Broker).
* IBM ACE Toolkit is an Eclipse-based tool that developers use to construct message flows and transformation artifacts using editors to work with specific types of resources. Context-sensitive help is available to developers throughout the Toolkit and various wizards provide quick-start capability on certain tasks. Application developers work in separate instances of the Toolkit to develop resources associated with message flows. The Toolkit connects to the integration servers or integration nodes to which the message flows are deployed.
* IBM App Connect web user interface (UI) enables System Administrators to view and manage integration resources through an HTTP client without any additional management software. It connects to a single port on an integration server or integration node, provides a view of all deployed integration flows, and gives System Administrators access to important operational features such as data record and replay, Business Transaction Monitoring (BTM), statistics and accounting data for deployed message flows that monitor the performance of integrations, and an administration audit log. (The web UI supersedes the Eclipse-based Explorer from earlier versions).

## How App Connect works

A SOA developer or integration developer defines message flows in the IBM ACE Toolkit by including several message flow nodes, each of which represents a set of actions that define a processing step. How the message flow nodes are joined determines which processing steps are carried out, in which order, and under which conditions. A message flow includes an input node that provides the source of the messages that are processed, which can be processed in one or more ways, and optionally deliver through one or more output nodes. The message is received as a bit stream, without representational structure or format, and is converted by a parser into a tree structure that is used internally in the message flow. Before the message is delivered to a final destination, it is converted back into a bit stream.
IBM App Connect supports a wide variety of data formats, including standards-based formats (such as XML, DFDL, and JSON) CSV and many more as well as industry formats (such as HL7, EDI and SWIFT), ISOxxxx and others as well as custom formats. A comprehensive range of operations can be performed on data, including routing, filtering, enrichment, multicast for publish-subscribe, sequencing, and aggregation. These flexible integration capabilities are able to support the customer's choice of solution architecture, including service-oriented, event-oriented, data-driven, and file-based (batch or real-time). IBM App Connect unifies the Business Process Management grid, providing the workhorse behind how to do something, taking directions from other BPM tooling which tells IBM App Connect what to do.
IBM App Connect includes a set of performance monitoring tools that visually portray current server throughput rates, showing various metrics such as elapsed and CPU time in ways that immediately draw attention to performance bottlenecks and spikes in demand. You can drill down into granular details, such as rates for individual connectors, and the tools enable you to correlate performance information with configuration changes so that you can quickly determine the performance impact of specific configuration changes, resource metrics can also be emitted to show what resources are being used by an integration service.
In version 7 and earlier, the primary way general text and binary messages were modeled and parsed was through a container called a message set and associated 'MRM' parser. From version 8 onwards such messages are modeled and parsed using a new open technology called DFDL from the Open Grid Forum. This is IBM's strategic technology for modeling and parsing general text and binary data. The MRM parser and message sets remain a fully supported part of the product; in order to use message sets, a developer must enable them as they are disabled by default to encourage the adoption of the DFDL technology for its ease of use and superior performance characteristics.
IBM App Connect supports policy-driven traffic shaping that enables greater visibility for system administrators and operational control over workload. Traffic shaping enables system administrators to meet the demands when the quantity of new endpoints (such as mobile and cloud applications) exponentially increases by adjusting available system resources to meet that new demand, delay or redirect the traffic to cope with load spikes. The traffic monitoring enables notifications to system administrators and other business stakeholders which increases business awareness and enables trend discovery.

### Overview

IBM App Connect reduces cost and complexity of IT systems by unifying the method a company uses to implement interfaces between disparate systems. The integration node runtime forms the Enterprise Service Bus of a service-oriented architecture by efficiently increasing the flexibility of connecting unlike systems into a unified, homogeneous architecture, independent integration servers can be deployed to containers offering a Micro-Services method of integration, allowing App Connect integration services to be managed by container orchestrators such as OpenShift, Kubernetes and others. A key feature of IBM App Connect is the ability to abstract the business logic away from transport or protocol specifics. IBM App Connect also provides deployment flexibility by not only supporting the ESB pattern but also container native deployments by separating Integration Servers from the ESB pattern which are a lightweight process hosting the integration flows, these Integration Servers and flows can be deployed across containers managed by orchestration services such as Red Hat OpenShift, Kubernetes, Dock Swarm and others, furthermore these Integration servers are optimised for container deployments by only loading resources that are needed to run an integration, offering fast start up times with reduced resource utilisation.
The IBM ACE Toolkit enables developers to graphically design mediations, known as message flows, and related artifacts. Once developed, these resources can be packaged into a broker archive (BAR) file and deployed to an integration node runtime environment or a container. At this point, the integration node is able to continually process messages according to the logic described by the message flow. A wide variety of data formats are supported, and may be modeled using standard XML Schema and DFDL schema, JSON and others. After modeling, a developer can create transformations between various formats using nodes supplied in the Toolkit, either graphically using a Mapping node, or programmatically using a Compute node using Java, ESQL, or .Net.
IBM App Connect message flows can be used in a service-oriented architecture, and if properly designed by Middleware Analysts, integrated into event-driven SOA schemas, sometimes referred to as SOA 2.0 and/or deployed as micro-services in container native deployments. Businesses rely on the processing of events, which might be part of a business process, such as issuing a trade order, purchasing an insurance policy, reading data using a sensor, or monitoring information gathered about IT infrastructure performance. lex-event-processing capabilities that enable analysis of events to perform validation, enrichment, transformation and intelligent routing of messages based on a set of business rules.
A developer creates message flows in a cyclical workflow, probably more agile than most other software development. Developers will create a message flow, generate a BAR file, deploy the message flow contained in the BAR file, test the message flow and repeat as necessary to achieve reliable functionality.

### Market position

Based on earnings reported for IBM's 1Q13, annualized revenue for IBM's middleware software unit increased to US$14 billion (up $7bn from 2011). License and maintenance revenue for IBM middleware products reached $7bn in 2011. In 2012, IBM expected an increase in both market share and total market increase of ten percent. The worldwide application infrastructure and middleware software market grew 9.9 percent in 2011 to $19.4bn, according to Gartner. Gartner reported that IBM continues to be number one in other growing and key areas including the Enterprise Service Bus Suites, Message Oriented Middleware Market, the Transaction Processing Monitor market and Integration Appliances.

### Expected performance

IBM publishes performance reports for IBM Integration Bus V10 and App Connect Enterprise V11, App Connect V12 reports can be requested for both ESB and Container measurements. The reports provide sample throughput figures. Performance varies depending on message sizes, message volumes, processing complexity (such as complexity of message transformations), system capacities (CPU, memory, network, etc.), software version and patch levels, configuration settings, and other factors. Some published tests demonstrate message rates in excess of 10,000 per second in particular configurations.

### Message flow nodes available

A developer can choose from many pre-designed message flow 'nodes', which are used to build up a message flow. Nodes have different purposes. Some nodes map data from one format to another (for instance, Cobol Copybook to canonical XML). Other nodes evaluate content of data and route the flow differently based on certain criteria

#### Message flow node types

There are many types of node that can be used in developing message flows; the following node transformation technology options are available:
* Graphical Mapping content
* eXtensible Stylesheet Language Transformations (XSLT)
* Java
* Smart Connectors, Discovery of objects; Salesforce and others
* .NET
* PHP
* JSON with validation
* HTTP Synch and Asynch
* RESTful
* API V3
* Extended Structured Query Language (ESQL)
* JMS
* Database
* MQ's Managed File Transfer
* Connect:Direct (Managed File Transfer)
* File/FTP
* Kafka
* MQTT
* CICS
* IMS
* TCP/IP Sockets client and server.
* Flow Routing and Ordering: Filter, Label, route to label, route, flow order, resequence, sequence, passthru
* Callable flows - Secure calling of message flows across hybrid deployments
* Error handling: TryCatch, Throw, Validate, Trace
* Grouping: Aggregation, Collection, scatter, gather
* Security
* Sub flows
* Timer
* SAP
* PeopleSoft
* JD Edwards
* SCA
* IBM Transformation Extender (formerly known as Ascential DataStage TX, DataStage TX and Mercator Integration Broker). Available as a separate licensing option
* Email
* Decision Support node. This node allows the Program to invoke business rules that run on a component of IBM Decision Server that is provided with the Program. Use of this component is supported only via Decision Service nodes. The Program license provides entitlement for the Licensee to make use of Decision Service nodes for development and functional test uses. Refer to the IBM Integration Bus License Information text for details about the program-unique terms.

### Localization

IBM Integration Bus on distributed systems has been localized to the following cultures:
* Brazilian Portuguese
* Chinese (Simplified)
* Chinese (Traditional)
* French
* German
* Italian
* Japanese
* Korean
* Spanish
* US English
* Polish
* Russian
* Turkish

### Patterns

A pattern captures a commonly recurring solution to a problem (e.g. Request-Reply pattern). The specification of a pattern describes the problem being addressed, why the problem is important, and any constraints on the solution. Patterns typically emerge from common usage and the application of a particular product or technology. A pattern can be used to generate customized solutions to a recurring problem in an efficient way. We can do this pattern recognition or development through a process called service-oriented modeling.
Version 7 introduced patterns that:
* Provide guidance in implementing solutions
* Increase development efficiency because resources are generated from a set of predefined templates
* Improve quality through asset reuse and common implementation of functions such as error handling and logging
The patterns cover a range of categories including file processing, application integration, and message based integration.

#### Pattern examples

* Fire-and-Forget (FaF)
* Request-Reply (RR)
* Aggregation (Ag)
* Sequential (Seq)

## Supported platforms
### Operating systems

Currently available platforms for IBM Integration Bus are:
* AIX
* HP-UX (IA-64)
* Solaris (SPARC and x86-64)
* Linux (IA-32, x86-64, PPC and IBM Z)
* Microsoft Windows
* z/OS