Image for post
Image for post

We have to consider a wide range of use cases in digital transformation projects. Some of these use cases are short-term interactions such as a user or a system invoking a service and expecting an immediate response. An example would be to getting the list of products under a certain category in a shopping portal. However, there can be a significant number of use cases that require more complex interactions with multiple systems as we discuss below.

A customer placing an order in a shopping portal

Multiple internal and external systems as well as shopping company’s staff could be involved in this process. Each of involved entity must receive…


Image for post
Image for post

Organizations undertake digital transformation initiatives to utilize technology as much as possible to support business operations. Therefore, many applications have to be developed for various business operations carried out by an organization such as inventory management, procurement operations, supplier management, payroll handing, advertising / sales campaigns, building space management and vehicle fleet management.

State of a typical organization

Even before a digital transformation project, organizations use many IT systems. These can be commercial systems, which may be deployed on-premise data centers, on cloud VMs (e.g. AWS, Azure, etc) or consumed as SaaS systems (e.g. Salesforce, NetSuite, etc). Further, an organization may have some custom developed…


Image for post
Image for post

Ballerina is a JVM based programming language targeted for developing integrations. Therefore, it provides built-in support for communicating over many protocols and handling many data types as first-class constructs. In addition, there are a large number of connectors and modules available in Ballerina Central to simplify the integration and data processing tasks. This makes it suitable for developing ETL flows as an alternative to using ETL tools as we discuss in this article.

ETL is the process of gathering data from various sources, performing required data cleansing, transformation, mapping, enriching, etc operations and loading those to target data stores. …


APIs are the entry point for accessing an organization’s functions and data. However, exposing an API to unintended parties can cause considerable damages to organization’s digital assets and could result in leakage of sensitive information. Therefore, security aspects related to APIs are a main concern when implementing a digital transformation project.

We have considered authentication problems of APIs in a previous article, which is also related to API security. This article looks at other important factors related to API security and possible methods of implementing those.

Access control in API invocations

First, let’s consider access control in APIs, which ensures that only intended parties can…


APIs are becoming the main interface for interacting with many things, from enterprise services, public services offered over the internet to physical devices. As there can be a large number of APIs deployed within an organization and there can many consumers for those APIs, properly authenticating all parties involved in API-based interactions is a major step of API security. This article looks at different authentication scenarios related to APIs and possible implementation approaches.

Image for post
Image for post
Figure 1: High level view of an API deployment

First, let’s look at main entities involved in a simple API deployment (Figure 1). We have a set of services that need to be exposed as APIs…


Many complex applications have to interact with various other applications when performing their operations. For example, a logistics application may have to interact with a vehicle tracking system to arrange optimal delivery schedules. It may also have to access warehouse management systems for checking stock levels. In addition, it may have to get customers’ delivery addresses and other details CRM systems. Furthermore, it has to interact with some kind of user store to authenticate users and determine which operations are allowed for them. Such logistics application may also expose its functions to multiple external components such as web portals, mobile…


Integration is about interconnecting different systems to work together to produce desired outcomes. Programming is to write a set of instructions to perform some tasks. Traditionally, these two were considered to be different concepts. But, what if we can combine these two concepts…

Image for post
Image for post
Photo by Helloquence on Unsplash

Integration platforms

When integrating systems, we need to connect remote servers over different protocols such as HTTP, JMS, and FTP. Various security mechanisms have to be supported and enforced among connected systems, such as TLS, OAuth and SAML. Systems may communicate using different message formats, which have to be transformed to enable interoperability. We have to take care of…


Image for post
Image for post

When we talk about IoT, mostly we are thinking about registering a set of devices, monitoring them, controlling them and analyzing data gathered from those devices. However, once we have these common IoT functions in place, we can think of advanced use cases, where more complex interactions among devices, external systems and humans are necessary.

Let’s consider one such use case - a smart home. A smart home may have temperature sensors to monitor temperature of each room, outside environment and tap water. There can also be motion sensors to detect movements and IR sensors to identify presence of people…


Image for post
Image for post

Devices (or “things” in the term Internet of Things) are the more visible part of IoT. However, merely having devices that can measure something (e.g. temperature), perform some action (e.g. control a motor) and communicate using some protocol (e.g. MQTT/TCP/IP over IEEE 802.11g/n) cannot do much towards fulfilling real use cases. An example use case we may expect from IoT could be a smart building, where we can:

  • monitor which light bulbs are currently turned on
  • monitor temperature of different sections of the building at a given time
  • control light bulbs, doors, window blinds, air conditioning, etc from a central…

A major part of Business Process Management (BPM) is to understand how processes were executed and to find out ways to improve current processes. In order to do this we need execution data. But how much data is needed? Answer is, the more data we can collect, the more we can discover. How do we collect data during process executions? If there is a process step which involves an employee filling a web form, it can easily generate data about who filled the form, start and end times of filling the form, values entered, etc. But what about process steps…

Chathura Ekanayake

PhD, Software Architect, Academic

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store