Background​

Microservices architectures consist of loosely coupled, reusable, and specialized components that often operate independently. Microservices also use a high degree of cohesion, also known as bounded context. Bounded context refers to the relationship between a component and its data as a standalone entity or unit with very few dependencies. Rather than being deployed enterprise-wide, microservices typically communicate via application programming interfaces (APIs) to create individual applications that perform a specific business function or functionality for specific business units in a way that makes them more agile, scalable, and resilient.

In short, a microservice makes the old dream of data and logic living together come true - at least in theory.

Xbase++ Context​

While microservices are a trend in hyper-scale enterprises, it turns out that the concepts and benefits are relevant to any application development and deployment process on a larger scale. Of course, and this is what typical Xbase++ developers do. They create rather large and complex mission-critical business applications. On the other hand, Xbase++ shops have problems integrating new development staff for a simple reason. They need full-stack developers and admins in one person, unfortunately, the times are gone for the type of developer that started the company. So divide and conquer is more important than ever. And again, this is an important aspect where microservices as an architectural pattern help, if done right.

So why not apply the concepts of microservices to desktop or network applications, the only requirement would be to eliminate or hide all the complexities of a microservice and infrastructure to make this feasible and work for everyone.

The Xbase++ MSA covers almost all of these problematic aspects of microservices and provides an intelligent framework for microservices-based applications. Thanks to its self-organizing and healing capabilities, complex things become simple.

Xbase++ MSA Overview​

concepts & technologies​

The Xbase++ MicroService Architecture (MSA) includes the following top-level concepts that dramatically simplify the development of microservices.

  • Configuration Management
  • Windows service framework
  • Automated service restart and recover
  • Adaptive Process Health Monitoring
  • Discovery and Registry
  • Request and Response scaling
Those previous core features allow the development of local microservices or microservices that work at a global scale.

In general, the specific behavior of an MSA microservice is defined by implementing a class derived from at least one of the public MSA classes as shown below:
msa-overview.png

Key Advantages and Use Cases:​

Transition from Monolithic to Microservice Approach: Xbase++ MSA facilitates moving away from traditional, large-scale desktop applications (often referred to as 'monoliths') to more modular and manageable microservices.

Simplified Onboarding for New Developers: New team members can integrate more easily, as they don't need to comprehend the entire existing application. This modular approach allows them to focus on specific parts of the application.

Specialized Developer Roles Over Full Stack Expertise: The era of needing developers who are experts in every aspect of the software stack is fading. Xbase++ MSA supports more specialized roles, reflecting modern development practices.

Uniform Codebase for Various Deployment Scenarios: Whether deploying locally or over a network, the same code and logic apply, simplifying the development process.

Streamlined Deployment with Minimal Infrastructure Dependencies: Deployment is straightforward, requiring only HTTP/HTTPS protocols, thus reducing complex infrastructure needs.

Elimination of Common Network Issues: Problems associated with SMB/LAN, like opportunistic locking and directory cache issues, are no longer a concern. This leads to smoother network operations.

Enhanced Performance for Multi-User Access: Deploying microservices with data storage can resolve performance bottlenecks often encountered in multi-user LAN environments.

Improved Quality and Testing Through Defined APIs: The clear definition of APIs in the microservice architecture leads to higher quality software and more effective testing.

Reduced Need for Remote Desktop Licenses: The architecture’s design eliminates the necessity for additional remote desktop licenses.

Global Accessibility with Local Deployment: Microservices can be accessed remotely, enabling a global reach regardless of physical deployment location.

Ready for 64-Bit Transition: A significant challenge with modern desktop applications is the lack of compatibility of many add-ons with 64-bit operating systems. Transitioning to the MSA, however, simplifies this process. When segmented into isolated parts under MSA, an existing application allows for a mix-and-match approach. These components can be either 32-bit or 64-bit, offering flexibility and easing the transition to more advanced, 64-bit environments.

Summary​

The Xbase++ MSA is a technology platform built around the concept of microservices. It supports existing Xbase++ solutions as well as new mission-critical solutions from the ground up. Adapting the MSA is not only a change in technology but also a strategic move towards more efficient and adaptable software development practices - all centered around Xbase++ - the business language. Essentially, the Xbase++ MSA enables a real paradigm shift in multiple ways if its concepts are applied.