Introduction:
We have been on a quest to build better systems. On-demand, virtualization had led to the rise of the Cloud Computing in the last decade or so. Cloud computing is a powerful transformational change with real& substantial benefits like reduced infrastructure cost, elasticity, scalability, better reliability, etc. Cloud Native Applications are designed to exploit these advantages.
That said, there is a large volume of Legacy applications in existence today. These systems have been running for decades and enterprises have used them to serve critical business needs. They are hosted on-premise, in organization’s datacenter(s). Typically, it is a challenge to keep the legacy application running because they use outdated technologies. There are several reasons, why it would make sense to upgrade these systems and migrate them to the cloud. …
Background:
The term “Web services” or simply “services” describes a standardized way of integrating Web-based applications using open standards over an Internet protocol backbone. It is a software function provided at a network address over the Web with the service “always on” as in the concept of utility computing.
Web services follow an architectural style wherein services are provided to the other components by application components through a communication protocol over a network. A system consists of many different services, which can be used in conjunction to provide the functionality of a large software application.
The Problem:
Services are designed using Object-Oriented Programming (OOP) languages like C#/Java and various frameworks have been built around them. OOP paradigm consists of objects that have internal states (e.g. private attributes in Java). These states are manipulated by public interface (e.g. Java’s public methods / attributes). This model maps very well in certain problems where the system consists of objects with internal states. One such domain is User Interface (UI) design. Each UI Object has state, e.g. TextField has string, Radio Button has a Boolean value (selected/unselected), Combo box has a selected option, etc. These states are controlled by an external event — either a user click or programmatically by code. …