Migration of business logic to the cloud

Before diving deeper into the subject of our discussion, we have to mention that we are going to talk here about legacy Delphi applications, which were created 10-15 years ago, when we didn’t have such popular solutions as Amazon Web Services (AWS), Microsoft Azure, Google Cloud and other cloud-based solutions. Nowadays, when you develop new applications using Delphi you can apply all these popular techniques and you don’t need any legacy migration. Up-to-date Delphi and C++ Builder applications usually implement all trendy architectures and already use all the power of popular cloud solutions.

But what did we have 10-15 years ago? – Usually it was a desktop application, which worked with a local (within the same machine) or local network database (client-server) with direct synchronous database access. Internet connection was unstable and expensive for real time and stable usage and REST API servers weren’t so popular as they are now. We didn’t need macOS clients, we didn’t have mobile applications, tablets, web solutions were not very popular, again, because of slow internet connections…

Get a free expert consultation about migration of business logic to the cloud

But today such architecture is totally obsolete and we have to re-engineer our Delphi applications and use all the power of modern technologies and architecture patterns. It’s a good practice to divide software architecture into modules, layers and services. In such a case each service is responsible for some part of business logic, like REST API data access, and is abstracted from client side. These services can be developed using any technology. Inside a data access layer modern applications should use their own abstraction levels, like abstraction data logic operations from RDBMS realization via ORM. Of course, architecture patterns and architecture models are totally different things. At Softacom, we use different architecture patterns for different technologies and platforms.

Here we will describe just a couple of options which you can apply for migration of your Delphi software business logic to the cloud. Of course, you can find and design more appropriate architectures, or even invent them. That’s totally up to you.

"Classic desktop architecture"

If each of your applications has the implementation of data access, e.g. to database tables, stored procedures, functions, instead of using unified endpoints with hidden business logic realization – you are using a classic architecture.

Cloud-based architecture

For a cloud-based architecture we create REST API data abstraction layer. Of course, we can just put a DB instance to the cloud and implement the same direct DB access with keeping the live connection, but this method has a lot of disadvantages.

With REST API abstraction layer, we have unified data access for all systems, technologies, frameworks, etc. For client applications data storage implementation is hidden and we can change RDBMS (or even NoSQL) without changing our client applications. Or we can change RDBMS to NoSQL and even don’t notify clients, because data storage implementation, as we have already mentioned, is hidden.

Architecture pattern #1. Delphi RAD Server + Azure or AWS virtual machine

Architecture pattern #2. Delphi custom REST API server for Azure or AWS virtual machine

Architecture pattern #3. Azure serverless computing solutions for building REST API server

Architecture pattern #4. Ready solutions for building REST API servers, such as Dreamfactory

← Delphi Migration