The RadixWare platform is designed for the development of corporate-level application systems. RadixWare is most effective for the development of the following application types:
- transaction systems
- queueing systems
- high availability and fault tolerant systems
- three-tier architecture systems: SQL DB, application server (cluster), terminals
- SOA-based systems (SOA, Service-Oriented Architecture)
- BPM systems (Business Process Management), the organization of workflow processes
The RadixWare platform includes:
- programming environment - RadixWare Designer
- support system - RadixWare Manager
- application server - RadixWare Server
- Web presentation server - RadixWare Web Presentation Server
- client application - RadixWare Desktop Explorer/ RadixWare Web Explorer
The workplaces can be arranged in one of the following ways:
- Using the RadixWare Desktop Explorer client application. The client application user interface uses the QtJambi library. Java Web Start technology can be used for the automated delivery of the RadixWare Desktop Explorer startup component to all workplaces using HTTP (HTTPS) protocol. The RadixWare platform provides an automatic update of the client application components except the startup component which is updated manually or by the Java Web StartSoftware.
- Using the RadixWare Web Explorer client application. The RadixWare Web Presentation Server application is used to provide the workplace access via HTTPS (or HTTP) protocol, and the browser is used as a client application.
To ensure prompt update of the product versions, the application code is stored in the Subversion repository.
4. Functionality and features
4.1. Declarative Programming
The RadixWare platform implements declarative programming paradigm based on model-driven architecture (MDA) and development (MDD). This enables the building and editing of executable product models that comprise the following:
- common data types
- database structure
- structure and code of application classes
- workflow algorithms
- dialog interfaces
- structure of XML documents and protocol messages
- user roles and rules for access rights
4.2. Object-Relational Mapping
The RadixWare platform is used to develop applications within a three-tier architecture: DBMS server - application server - client applications. As such, the object-relational technology (ORM) used by the programming environment addresses the following issues:
- Synchronization and control of the DB structure (tables, connections, etc.) and the objects in the application server code that use these structures.
- Data storage logic encapsulation: the application server code doesn’t control the DB objects , but the application environment objects within the programming language, thus, simplifying development.
- Development of all three tiers in the same environment.
- Traffic minimization between the application server and the client.
4.3. Application Structure
Based on the RadixWare platform, the application comprises a layered directed graph. Each layer implements specialized functionality specific to a particular level. The lowest layer (the RadixWare platform) implements the basic functionality (ORM, access isolation, workflow algorithms, reports, etc.) that can be used in various systems for different purposes. The product specialization increases with every layer. The topmost layer can only be used to solve the tasks of a particular customer. Each layer can use the functionality of the previous layers, but not the subsequent ones. Each layer is identified by a URI.
For example, the org.radixware.radinsk layer which comprises the Radinsk application platform is based on the org.radixware layer. The product user has the opportunity to develop their own org.radixware.radinsk.client_x layer that implements the functionality required based on the functionality from the org.radixware.radinsk layer.
Each layer is divided into segments:
- Kernel. This segment contains the core system classes, implemented on Java SE without using RadixWare Designer. This segment can be missing in some layers.
- Database Definition Segment (DDS). This segment contains the product DB structure model and DB executable codes.
- Application Definition Segment (ADS). This segment includes the application model as a set of definitions.
- User Definition Segment (UDS). This segment contains the user definitions sent by the customer for vendor support.
Each segment is distinguished by the runtime environment: the Kernel segment runs on the Java Virtual Machine; the DDS segment runs on the DBMS server, and the ADS segment runs in the Application Runtime Environment (ARTE) built in RadixWare Server and RadixWare Explorer.
The definitions of each layer can use the definitions of the layer below. As such, definitions of the upper layers can overlay definitions of lower ones; therefore, the upper layer can not only add new functionality, but also change the behaviour of the lower layers.
Each segment contains a set of modules. Modules can depend on each other forming a dependency graph. Module organization solves the following tasks:
- Differentiation of logically independent parts.
- Scope management: every module scope comprises only the modules specified in the list of dependencies.
- Distribution creation support: by specifying the modules to be included in the distribution, these modules as well as the dependent ones will be automatically included in the client specific product distribution.
4.4. Three-Tier Architecture
The RadixWare platform is intended for the development of applications with a three-tier architecture that comprises the following tiers:
- DB Server. The DB server is used to store all application data using Oracle Database. It is possible to use a DB cluster server.
- Application Server. RadixWare Server functions as an application server.
- Client Applications. RadixWare Desktop Explorer / RadixWare Web Explorer functions as a client application.
To ensure the scalability and fault tolerance of the applications server tier, this tier can run as several server instances. Each instance is typically started up on a separate cluster node. When the client connects to the applications server, the service infrastructure automatically selects the instances available and balances the load between them.
A set of modules runs within each instance defined by the system administrator. The system modules interact via SOAP protocol to enable interaction between the modules run within one instance and the modules of different instances. Some modules provide the EAS (Explorer Access Service) service used by the client application to interact with the application server.
4.5. Comprehensive Development Environment
As a rule, a corporate-level system comprises a multitude of diverse components functioning in different runtime environments:
- application servers
Each environment makes use of its own programming languages, debugging tools and deployment methods.
The RadixWare platform includes an integrated development environment, RadixWare Designer. It contains a comprehensive set of programming tools for each runtime environment. RadixWare Designer provides the creation, debugging and testing of the system model in all runtime environments.
4.6. Product Lifecycle Management
The RadixWare platform provides integrated technological support at all stages of product lifecycle for its developers, that is:
- module testing
- integration testing
- issuing releases
- preparation of distribution kits and service packs for customers
- preparation of patches
In addition, RadixWare provides all of the processes related to the product lifecycle within the company using the product: receiving, deploying, integrating, testing, installing the service packs provided by the vendor, as well as reworking and extending the product.
4.7. Continious Operation
The RadixWare platform has been created for the development and support of critically important systems with a high level of accessibility. For systems such as these, it is essential to minimize idle time.
The RadixWare architecture provides the capability to perform the installation of on-the-fly updates, i.e. installations without having to shut down the system. As soon as updates are available they are automatically delivered to all servers and workstations and put into operation. During the upgrade procedure, the server simultaneously serves multiple clients with different operating software versions, using the appropriate system version in each case. Unavoidably, certain types of updates affecting the system core may require its shutdown, but should this occur, the applications are restarted automatically within a matter of seconds.
4.8. Ready Technological Components
In addition to the tools for product development and maintenance, the technological platform provides reusable components that can be used to create corporate-level systems. RadixWare, in particular, includes:
- SOA components: system services, directory of services, routing services, security services, etc.
- access control system
- audit tools
- workflow engine for the distribution of business processes, including the manual ones
- various channels for personal communications (e-mail, SMS, etc)
- task scheduler
- report designer
- tools for the description and support of protocols (not just based on XML)
The set of components provided by RadixWare is sufficient to perform a variety of tasks required for the creation of corporate-level systems. This can be extended, if necessary.