A Survey of Modern Application Integration Architectures

DZone 's Guide to

A Survey of Modern Application Integration Architectures

The IT world is moving forward fast, and a single integration backbone is not sufficient enough in this era of integration.

· Integration Zone ·
Free Resource

This article is featured in the new DZone Guide to Integration, Volume III. Get your free copy for more insightful articles, industry statistics, and more.

The IT world is moving forward fast. Cloud services, mobile devices, and the Internet of Things peel away existing business models, but also establish wild spaghetti architectures through different departments and lines of business. Several different concepts, technologies, and deployment options are used. A single integration backbone is not sufficient anymore in this era of integration.

A Hybrid Integration Platform for Core and Edge Services

“Hybrid Integration Platform (HIP)” is a term coined by Gartner and other analysts. It describes different components of a modern integration architecture.

Leveraging a well-conceived hybrid integration architecture allows different stakeholders of an enterprise to react quickly to new requirements. Mission-critical core business processes (also called “core services”) are still operated by the central IT department. These services run the business and change rather infrequently.

On the other side is the line of business needing to try out new — or adapt existing — business processes quickly in an Agile way without the use of delaying and frustrating rules and processes governed by central IT. Innovation by a “fail fast” strategy and creating so-called “edge services” is getting more and more important to enhance or disrupt existing business models and therefore change the business.

Image title

Figure 1: Enterprise journey with CORE and EDGE services.

The following figure shows the components needed in a Hybrid Integration Platform to run and change the business successfully:

Image title

Figure 2: Components of a hybrid integration platform.

Application Integration With an Enterprise Service Bus (ESB)

When to Use It

ESBs are usually used in bigger IT projects where mission-critical core business processes have to be integrated with a need for high availability, reliability, and performance within the enterprise (“core services”). This affects many different technologies and applications to integrate standard software, legacy systems, custom applications, or external cloud services.

Deployment Model and Target Audience

Integration specialists implement ESB clusters to leverage high performance, high availability, fault tolerance, and guaranteed delivery of transactions. Most of the integration happens on premise in the private data center. Therefore, even “microservices do not spell the end of the ESB!” You can deploy to cloud, but this is more “cloud-washed” — but not cloud-native — deployment and operations; you “just deploy your existing application to the cloud!” However, this also can make sense, like for test instances or to use IaaS capabilities without leveraging cloud-native features.

Some Options

An Enterprise Service Bus (ESB) includes products such as MuleSoft Anypoint Platform, Talend ESB, WSO2 ESB, TIBCO ActiveMatrix BusinessWorks, or Oracle Service Bus. An alternative pure-coding solution is using an open-source Integration Framework such as Apache Camel or Spring Integration.

Cloud-Native Application Integration

When to Use It

Integration in a cloud-native environment is quite different than your traditional approach to application integration. Typically, companies leverage platforms-as-a-service (PaaS) such as Cloud Foundry, Kubernetes, OpenShift, or Apache Mesos.

The applications created using these cloud-native application integration tools run natively within these PaaS environments and therefore benefit from the features offered by these platforms, including provisioning infrastructure, service discovery, load balancing, elasticity, cluster management, or fail-over out-of-the-box. It also allows more Agile development to implement, adopt, and scale new features or innovations quickly and efficiently.

For this, the application development and architecture needs to be adapted to cloud-native concepts. This especially includes applying concepts behind “The Twelve-Factor App” principles, which recommends best practices for cloud- native applications such as stateless services, automation via DevOps, or environment-independent backing services. Often, you leverage independent containers (i.e., Docker, CoreOS, or Cloud Foundry’s Warden) for building cloud-native microservices or applications.

Deployment Model and Target Audience

Core IT teams are adopting these PaaS platforms, but they are doing this to drive the agility for all developers. As a result, both the traditional integration teams as well as the developers within line of business are able to benefit from these platforms and the capabilities offered by the integration technologies.

PaaS are widely adopted: on premise, in the public cloud, or as hybrid deployments. However, many enterprises do not have a complete, long-term strategy yet regarding cloud or hybrid deployment architectures. Hence it is important to develop cloud-platform-agnostic integration services, which can be moved from one platform to another without great effort or redevelopment.

Middleware also should support and integrate mature, open-source frameworks for cloud-native environments such as Spring Cloud Configuration, Consul, Netflix’s Eureka, or Hystrix instead of re-inventing the wheel by introducing additional complexity. The article “A Cloud-Native Architecture for Middleware” explains the concepts behind cloud-native platforms and deployment options in much more detail.

Some Options

TIBCO BusinessWorks Container Edition or WSO2 are examples for cloud-agnostic integration middleware supporting different PaaS and container platforms such as Cloud Foundry, Docker, Kubernetes, or AWS ECS. JBoss Middleware Services allows the deployment of its middleware applications onto OpenShift.

Integration Platform as a Service (IPaaS)

When to Use It

An iPaaS Cloud Integration middleware is a pure public cloud offering hosted by a speci c vendor. Using iPaaS allows the line of business to react quickly to new requirements or innovative ideas without struggling with the core IT team and its long release and quality management processes. iPaaS can be used for both mission-critical core services and innovative edge services.

Deployment Model and Target Audience

The vendor takes care of cloud-native features such as provisioning of infrastructure, elasticity, or multi-tenancy. This needs to be a real cloud-native enterprise-grade runtime and not just a “cloud-washed” offering. Otherwise, it is not possible to scale out quickly and easily while still keeping high demands regarding stability and resiliency of integration services.

The target audience for iPaaS is not necessarily the integration specialist with extensive technical experience. iPaaS also allows colleagues with less technical expertise (sometimes called “ad hoc integrators”) to define, deploy, and monitor services and APIs with its corresponding policies. Ad hoc integrators often do not use the more powerful IDE but an intuitive and simple-to-use web user interface.

iPaaS has to work well together with other integration solutions. How different integration solutions work together depends from vendor to vendor. You should check if you need to redevelop existing services, if you can add changes via a web UI, and if different products work together at all (including commercial support).

Some Options

The iPaaS market is just emerging these days. Some examples are Dell Boomi, Informatica Cloud, MuleSoft Anypoint Platform, SnapLogic, Jitterbit, or TIBCO Cloud Integration.

Integration Software as a Service (iSaaS)

When to Use It

iSaaS integrations serve “edge services,” which are not strategic and mission-critical for the enterprise — but very relevant for the specific business user. For instance, a business user creates a daily automatic flow to synchronize data from a Google Sheet with Salesforce CRM. This removes the need to integrate these updates manually every day.

Deployment Model and Target Audience

iSaaS is hosted and operated by the vendor. In contrast to the above integration components, iSaaS focuses on business users (also called citizen integrator in this context). They can create basic integration flows for personal or department interests in a very intuitive web user interface without any technical knowledge.

Some Options

Examples for iSaaS solutions are SnapLogic, TIBCO Simplr, or IFTTT (“If This Then That”).

IoT Integration Gateway

When to Use It

The Internet of Things (IoT) changes the role of edge integration. It raises several new challenges not relevant for classical application integration such as low bandwidth or non-reliable connectivity.

Here you need to integrate data directly on the edge devices, as not all data should be sent to the private data center or public cloud. For example, you might aggregate and filter sensor data from an assembly line in manufacturing, and only forward relevant information (such as alerts) to external interfaces. An IoT Integration Gateway interconnects all devices via various IoT Standards such as MQTT, CoAP, WebSockets, Bluetooth or RFID.

Deployment Model and Target Audience

Integration specialists use the IoT Integration Gateway to realize IoT edge integration. Development can be done via coding or intuitive web user interface and out-of-the-box connectivity to various IoT standards.

Some Options

You can use hardware gateways from vendors such as Intel, ARM, or Eurotech, or IoT gateway open-source frameworks such as IBM’s NodeRED (implemented with Node.js using JavaScript) or TIBCO’s Flogo (implemented with Google’s Go Programming Language).

API Management

When to Use It

The trend is heading towards an Open API Economy where services are exposed as APIs to other internal departments, partners, or public developers. Think about examples such as PayPal, whose API is integrated into almost every online shop as a payment option, or Google Maps, whose API is used in almost every website that includes a description of how to get somewhere.

Deployment Model and Target Audience

The target audience is the line of business which leverages API Portals to think about new digital products to increase revenue or make customers happy. A key for success in a hybrid integration architecture is a good cooperation between API Management and different integration solutions. This enables developers to reuse services to concentrate on new features, shorter time-to-market, and innovation instead of recreating existing services again.

Some Options

Examples of API Management solutions are Apigee (Pure Player), Akana (Pure Player, formerly SOA Software), Mashery (TIBCO), or 3scale (Red Hat). Sometimes a hardware API Gateway such as IBM DataPower Gateway is used as a replacement for or in addition to the software API Gateway.

The Need for a Hybrid Integration Architecture

This survey shows that a single integration platform is not sufficient anymore in the era of cloud, mobile, big data, and IoT. Differentiation between core services for running the business and edge services for changing the business is a key step towards a Hybrid Integration Platform. On-premise vs. cloud-native development and deployment is another key aspect. Streaming Analytics and Business Process Management (out of the scope of this article) are not part of application integration directly, but also relevant for a hybrid integration architecture.

More EI Goodness

For more insight on application integration architectures, REST APIs, microservices, and more, get your free copy of the new DZone Guide to Integration, Volume III!

If you want to see other articles in the guide, check out:

application integration, hybrid integration architecture, integration

Published at DZone with permission of Kai Wähner , DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}