How Does Headless Approach in Architecture?

The headless approach is based on a core set of generic and reusable business components such as:

  • Business objects
  • Transaction management components
  • Event management components
  • Reconciliation components

These generic components are independent of any particular application or implementation technology. In other words, they define the “what” without specifying the “how”. They can be implemented in a variety of ways using different technologies such as JavaBeansTM, Enterprise JavaBeansTM, Microsoft’s OLE/COM+, C++ Builder TM, Visual Basic TM, and PowerBuilder TM.

The Basis of A headless Architecture

A headless architecture is based on open standards such as CORBA or DCOM that provide a common framework for developing distributed applications across heterogeneous platforms and programming languages. A headless architecture also uses open-systems standards such as SQL for persistent storage and XML for message exchange and data definition language (DDL).

These standards allow you to use virtually any vendor’s products to implement your system because all these vendors are required to support these open standards. Having said this, it should be noted that many commercial products do not necessarily support all these open standards in their products out-of-the-box, but rather have to be customized to support them.

Headless architecture is also known as component-based or component-oriented architecture. While the terms are used interchangeably, there are subtle differences between them. 

For example, a component-based architecture (CBA) may not necessarily be headless and vice versa. A headless architecture is typically a CBA but not all CBAs are headless.

A component in a headless environment is an object that has well-defined interfaces and functionality. It can be reused in other applications and can be dynamically integrated into an application at run time without any modifications to it or the applications that use it. 

In a headless environment, components can run in different operating environments such as Windows® NT TM, Java TM, UNIX®, or mainframe (MVS).

Microservice architecture is an architectural style that structures an application as a collection of loosely coupled services. It is an extension or superset of the service-oriented architecture (SOA) concept, where services are more granular.

According to the experts at Contentful, “Microservice architecture is also referred to as composable architecture, modular architecture, MACH architecture (microservices-based, API-first, cloud-native, and headless), and best-of-breed architecture.”

Microservices are small and cross-functional, typically developed in a DevOps environment and deployed independently. In a microservices architecture, the application is divided into fine-grained components that can evolve independently over time. 

The microservices approach is based on having small autonomous services that work together to deliver business value to the customer.

One of the advantages of using headless components is that they isolate you from changes in underlying technologies and allow your applications to evolve independently of these changes. 

For example, if your application uses legacy mainframe components today it can be easily migrated to Java TM components tomorrow without changing the interface or functionality of your application.

This is because both types of components will have well-defined interfaces and functionality with no dependencies on each other except for their data structures which may differ depending on the technology used for implementation. Another advantage is that you can use a variety of vendors’ products because they all support open standards such as XML, SQL, and SOAP for messaging and data exchange.

Leave a Reply