Connecting Systems with Middleware

Mar 4, 2026

There is no single software application that can fulfill all the needs of a business - small or large.  All companies end up using several applications to run their operations - financial, production, facilities management, project management, time keeping - and the list just goes on.

Each application's data is important by itself, but the aggregate information from all applications can be vital to a company's success.  In a perfect world, all of these applications would know how to exchange information between them, but we all know we don't live in a perfect world.  The reality is there are so many different needs and possibilities that there is no way any application can anticipate or understand another arbitrary application's data structures and relationships.

Most applications make their data available in some form or another, even if it is just the ability to export to a spreadsheet.  Applications that take interoperability more seriously expose their data through an Application Programming Interface (API).  An API is, simply put, a documented way to send a request to and get a response from an application.

Quickbooks implements a comprehensive API that allows other applications to perform just about any task a user could.  For example, an application could add a new sales order to Quickbooks, or it could request a list of all the purchase orders for a particular company.  API are not limited to desktop applications.  There are many web based services that have APIs as well.  FedEx and UPS have APIs that let you track your packages.

So imagine that you ship out an order, and the FedEx shipping number is added to the sales order in Quickbooks.  Quickbooks checks with FedEx every night to see if the shipment has been delivered.  Once it's delivered, Quickbooks then automatically generates the bill to be sent to the customer.  Doesn't that sound great?  Once the shipping number is entered into Quickbooks, you don't have to do anything else!

There is a problem with that example, though.  It doesn't work like that.  The Quickbooks and FedEx APIs don't know anything about each other and can't directly exchange information.

This is where middleware becomes essential.  To make the example actually work, an application needs to sit between the Quickbooks API and the FedEx API and pass messages between them.  In this case, the middleware would periodically ask Quickbooks for the shipping numbers for all the un-billed sales orders.  It would then send that list of shipping numbers to the FedEx API and ask for the status of each shipment.  For the shipments that have been delivered, the middleware would then tell Quickbooks to create a bill for each of those sales orders.

The possibilities and requirements for middleware are as varied as the APIs that it connects together, so most middleware applications are custom designed to fit each customer's specific needs.  If you have some systems that aren't talking to each other, but you think life would be easier if they did, get in touch with us.  We'd be happy to talk possibilities with you.

Bit Blog