The ultimate goal of Intino is to develop a distributed system following big data architecture principles. Every distributed system should begin with a clear definition of the system and its structure. By doing it, organizations can lay the groundwork for a successful distributed system. This approach ensures that all subsequent development aligns with the desired architecture, leading to a cohesive and maintainable solution.

Intino's approach to developing distributed systems is grounded in the principles of service-oriented architecture (SOA), where the system is structured as a collection of services that communicate through well-defined interfaces. These services are designed to be loosely coupled yet functionally cohesive, allowing for greater flexibility and scalability. In line with this architectural strategy, Intino provides a series of frameworks that serve as foundational tools for extending functionality across its distributed system architecture. These frameworks are inherently extensible, offering a base structure and a suite of functionalities that specific modules or business units can customize and build upon according to their unique requirements. This approach not only facilitates the modular development of services but also enhances the ability of the system to integrate and adapt to changing business needs, thereby embodying the core characteristics of SOA.

Frameworks

A framework in the context of software development is a comprehensive toolset that offers a structured way to build and manage applications. Unlike standalone libraries, frameworks dictate the architecture of your application. This inversion of control, where the framework calls your code rather than your code calling the framework, simplifies the development of complex functionalities and ensures consistency across different parts of the application.

Intino provides a series of frameworks that serve as foundational tools for extending functionality across its distributed system architecture. These frameworks are designed to be extensible, meaning they provide a base structure and set of functionalities that services can customize and build upon according to their unique requirements.

The essential services that every distributed system should include:

  • Federation: supported by Amidas framework, which provides the infrastructure and tools necessary for implementing robust federation services, including user registration, authentication, and authorization processes.
  • Analytics: supported by Sumus framework, which is specifically designed to handle the complexities of business intelligence services.
  • Taskhub: supported by the Monet framework, which addresses the need for handling manual tasks within automated workflows.
  • Business Units: supported by Magritte framework which is oriented the development of business models using the [[proteo|Proteo DSL]. Magritte facilitates the automatic generation of code based on these models, ensuring that the business logic is accurately implemented and maintained.

DSLs

A significant aspect of Intino's vision is its reliance on Domain-Specific Languages (DSLs). A DSL is a programming language tailored to a specific application domain. Unlike general-purpose programming languages, which are designed to be versatile and applicable to various tasks, DSLs focus on solving particular problems or tasks.

Intino provides a suite of specialized DSLs designed to streamline different facets of its technology framework, enhancing both development and operational efficiency.

  • Proteo is used for defining the business model, providing clear specifications of data structures and relationships critical for consistent application across platforms.
  • Konos facilitates the integration of business logic with external services by defining layers that handle interactions, such as APIs, user interfaces, and business processes. For the deployment and management of software artifacts,
  • Legio orchestrates the project model, handling dependencies and configurations akin to a project object model.
  • Ness Ness focuses on creating the structure for the datalake, which is crucial for supporting big data analytics and real-time data processing. It also defines the taxonomy of events within the system, ensuring that events are categorized and managed effectively for easy retrieval and analysis.