An API Economy story using the IBM Integration Suite
During the last 20 years the 2Expensive company didn’t invest much in their IT landscape and are still using an old mainframe-based ordering system to process orders made in a store or by phone. Recently they have noticed a lot of customers are dropping out, causing revenue to go down.
The first idea that came to mind, was to turn things around by creating a website where customers could see the product catalog. This catalog database was made accessible through a simple REST API, feeding the website. However, it did not take long before customers started asking for a possibility to order items directly via the website. This was not an easy question, since the ordering system was designed to only accept orders through files with fixed-length records.
After a small brainstorm, 2 options were on the table: buy a new ordering system, or disclose the ordering system through a REST service. The first option quickly proved way too expensive, not only due to the license and tool implementation cost, but also due to the associated change management track of retraining all impacted employees, reorganising the support organisation, etc.
1. Accessing the mainframe via IIB
2Expensive asked LoQutus to guide them in choosing the best solution. It quickly became clear that the most future-proof way was to set-up an ESB to disclose the legacy mainframe. After a short selection study, the decision was made to go further with the IBM Integration Bus (IIB).
Why, you ask? Because IIB is a proven, scalable and secure integration platform that delivers rapid, secure, scalable and reliable connectivity. It supports a large number of protocols and platforms, and provides industry relevant connectivity, e.g. a CICS connector to directly call CICS programs on a mainframe. It adds flexibility by introducing loose coupling between producers and consumers and provides insights into applications and the business value they bring.
If you want to learn more about IBM Integration Bus, visit the following link: IBM Integration Bus
A few days later, the first REST API was created, exposing the mainframe ordering functionality. This API receives a JSON order object. First the API will do a look-up of the warehouse where the item is stored. In the next step, a fixed length string is created and added to the order file, located on the mainframe. From this file the ordering system can read the new order and process it.
2. Opening up the API’s via API Connect
OK! So now a REST service is available that can place an order in the ordering system. Wouldn’t it be great if there would also be a mobile app? And instead of creating a mobile app specifically for 2Expensive, why not make both APIs (catalog and ordering) available for external app developers? That way a lot of new sales channels could be opened up. Great!
To make the APIs available in an efficient and secure manner, we chose API Connect, the API management solution of IBM, and more specifically the IBM Cloud version. This got us started in no time. After the initial configuration of the product, we created 2 API catalogs, one for acceptance and one for production. On the latter we also configured a developer portal. This portal allows for other (external) developers to register and consume the API’s.
For information about IBM’s API Connect, visit the following link: API Connect
3. Mobile App developer discovers the API portal
Niek is a mobile app developer planning to develop a new app that businesses can use to order gifts for their employees. He’s looking for a partner that can handle the orders that will be placed by the app’s users. By browsing the web, he bumps into the developer portal of 2Expensive and has a look around. Niek is thrilled to find exactly the API he needs. After creating an account on the portal and registering his app, Niek can start invoking the API. After some satisfactory tests on the portal, he incorporates the API in his app. After a couple of weeks, Niek is happy to unleash his app to the public! He monitors the usage of his app’s API calls on the web portal and discusses the APIs on the portal’s forum with other users.
4. Citizen developer using a no-code approach to integrate
OptiBeer is a consulting company that optimizes the process of brewing beer. They are chemists and have no in-house IT department, certainly no software developers.
OptiBeer uses SalesForce to track their accounts, opportunities, etc. Through a partnership with 2Expensive, a customer present was automatically ordered whenever an opportunity was won.
Until now, these presents were ordered by phone or e-mail. They were delivered at the OptiBeer office and had to be gift-wrapped and sent to the customer. However, the new APIs of 2Expensive are now enabling automation of this process, greatly improving efficiency as well as lowering cost.
By using IBM App Connect, you don’t have to be a software developer or an integration specialist to implement this scenario. Any tech-savvy business user (citizen developer) can implement this integration by using the no-code approach IBM App Connect provides. By using a visual editor and out-of-the-box adapters (such as the SalesForce adapter), you can use the drag & drop functionality to configure the integration flow you want.
OptiBeer has realised this solution in just one day, using a combination of the SalesForce adapter (to detect if an opportunity was won) and the custom HTTP adapter (to call the 2Expensive REST APIs).
IBM App Connect is also hosted on IBM Cloud (formerly known as IBM Bluemix). A simple registration to IBM Cloud and a subscription to IBM App Connect is all that is required to get started, no need to install servers!
5. Capture user feedback
Developers that are registered on the developer portal can provide feedback about the APIs they are using. By providing feedback, they contribute to further improvement of the APIs. Using this feature, Niek has asked to extend the response with the item category. The request was approved by the product owner to be included in a new version of the API. Once the development was done, we successfully tested the new version in our internal development environment and published the new version to our production environment (causing the old version to become deprecated in the process). The users that were already using the old version of the API are still able to use it, but new subscribers will need to use the new version. This way we can control which versions are still in use and ask politely to the subscribers to use the newest version of the API. Once all subscribers are migrated to the newest version, the old version can be deleted.
In this blog post we presented you a simple but realistic scenario about how companies and individuals can join the API economy. We implemented this scenario using three products from IBM’s Integration Suite: IBM Integration Bus, API Connect and App Connect. We gave a demonstration of this scenario at our Hybrid Integration Event in Brussels in January 2018.
We hope that this blog post can demonstrate some of the value and insight that it gave the attendees of our event. Please get in touch with us if you want to discuss our (or your own!) story in more detail or see the demo yourself!
Wim Moons, Niek Jacobsen & Bram Deschagt