As the today's demands for high-performance computing are ever-growing, the logical answer for this growth is Enduro/X middleware product from Mavimax Corporation. As the servers become cheaper, there is needed to put them together and create the High-Performance Cluster (HPC) for serving the application. This can be easily reached by Enduro/X middleware which creates abstraction for programmers over the physically deployed server. Enduro/X provides the core functionality of an OLTP system by applying tried and tested mainframe technologies. Typically mainframe-based options are powerful but expensive and the resources you need to develop and administer these systems are becoming harder to find. Thus Enduro/X can bring the features of mainframe-based technologies to the commodity platform - hardware and software. The Enduro/X allows to program cluster systems in the fusion of the C/C++, Java, Go, and Python languages. There is community support for PHP and Perl development environments.
The middleware functions also as an application server, which governs the processes and does the corrective actions if required. Enduro/X is one suite for building real-time applications with ease. It provides standards-based middleware, such as microservices, XATMI, and XA API. Additional helper modules such as code generators, common configuration, and logging frameworks allow starting the application development from zero point without the need for third-party libraries. Thus reducing the total cost of the ownership (TCO).
The Enduro/X is built with compatibility in mind. The standard APIs such as XATMI and XA, ensure that customers can easily migrate from Oracle Tuxedo, Hitachi OpenTP1, or Red-Hard JBoss platform to Enduro/X with little or no effort of additional development. As the Enduro/X grows rapidly, more and more APIs are made available thus more compatibility and functionality are added to the middleware.
Details of the Enduro/X Core product
Enduro/X core is the middleware and application server that provides APIs for C/C++, Java, Go, and Python3 environments. The following features are included in Core product:
- Foundation midleware with employs the POSIX kernel queues.
- Extended XATMI API.
- Communication types - Synchronous, Asynchronous, Conversational, Publish/Subscribe, unsolicited messaging.
- Transaction Management - Global Transactions - Two-phase commit protocol - X/Open XA
- Distributed transaction manager.
- Enduro/X Smart Cache - flexible, configuration based cache for XATMI micro services.
- Application server.
- XATMI server monitor.
- XATMI client process monitor.
- Peer based clustering. Including tpforward() over the cluster nodes.
- Multi-threaded event broker.
- Typed IPC buffers:
- UBF (Unified Buffer Format) Protocol buffer similar to Tuxedo's FML/FML32 format and product includes compatibility headers. UBF is a high-performance binary protocol buffer format. Buffer is indexed by binary search on fixed-length data types. Supports recursive buffers, PTR and VIEW fields.
- STRING buffer format.
- CARRAY (byte array) buffer format.
- JSON buffer format, automatic conversion between JSON and UBF available.
- VIEW buffers (cross-platform C structure transport and structure mapping to UBF)
- Common debug logging framework, that can be used by user applications.
- Common configuration framework, that can be used by user applications.
- Built in system profiling tools.
- Persistent queue API and management.
- System self-healing and recovery. Every aspect of the system is monitored and can be restarted without service interruption.
- All major Unix Operating systems are supported: Linux, IBM AIX, Oracle Solaris, FreeBSD, MacOS.
- Built-in scripting framework with code generators:
- Can generate XATMI server code in C and Go languages.
- Can generate XATMI client code in C and Go languages.
- Base UBF table layout generator with package outputs for C and Go.
- User scripting framework for creating user-specific code generators, for fast prototyping and system development.
- Provision feature for quick runtime system configuration.
- TMIB API support.
- Full support of build tools (buildserver, buildclient, buildtms).
- XATMI service dispatch threading.
- Data Dependent Routing support for UBF buffers.
- Automatic transactions for XATMI servers.
- Service priority handling.
- On the fly log level changing and log rotation for any Enduro/X related program.
- Latent Command Framework for custom real-time command publishing to processes.