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.
To start using RadixWare you should know that the RadixWare application development, testing and production environment consists of the following components:
- Database Server (DbServer) - the machine on which the database server is run and where persistent data of your application is stored
- Application Server (AppServer) - the machine on which RadixWare Server is run
- Workstation - the machine used for the application development and / or for the application GUI execution
- Subversion Server (SvnServer) - the machine on which the Subversion server is run to support team development and release management
Each component can be implemented on a separate computing unit (physical or virtual machine), but in the most simplistic cases, all components can be implemented on a single workstation.
To develop, test and run the RadixWare application you need to do the following:
Step 1. Find a computer or computers, or use virtual machine(s). Make sure that your computer(s) or virtual machine(s) complies with the following minimum system requirements:
- 2.5 GHz or faster multi-core processor
- 8 GB RAM
- 6 GB available hard disk space
- a modern operating system compatible with Oracle Database (see Oracle documentation), Java (see Java system requirements) and Subversion (see Subversion FAQs)
Step 2. Install and configure the third party software:
- Download and install Java SE Development Kit 7 on AppServer and Workstations.
- Download and install Oracle Database Express Edition 11g Release 2 or another edition of Oracle Database (v.11 or higher) on DbServer. For more details, see Oracle Database Express Edition Installation Guide for Windows or Oracle Database Express Edition Installation Guide for Linux. Then run Oracle Instance and create a table space using the tablspaces.sql script. During the execution of the script define the directory where the Oracle datafile will be located.
- Download and install Subversion 1.8 + Apache Server or another Subversion server on SvnServer. For details, see the How to install and configure Subversion server article in the FAQs.
- Download TortoiseSVN (or another SVN-client) v.1.8.* or another version that is compatible with the Subversion server installed and install it on the developer’s Workstation.
Step 3. Prepare the RadixWare installer:
Download and install RadixWare Manager on the administrator's and developer's Workstations following the instructions from the Installing RadixWare Manager section of the RadixWare Upgrade Administrator Guide.Note: when you start RadixWare Manager, you should specify path to the Oracle Java Database Connection (OJDBC) driver. Download ojdbc6.jar v.188.8.131.52 or later and use it on current and following steps.
- Create a new RadixWare Manager project using the guidance given in the Creating a Project section of the RadixWare Upgrade Administrator Guide.
Step 4. Install RadixWare in your development environment:
- Download the RadixWare Platform distribution kit and load it on to your RadixWare Manager Project following the instructions from the Loading Software Product Update Package section of the RadixWare Upgrade Administrator Guide. Should you have any questions or problems, please, see the Editing Layers and Frequently Asked Questions sections of the RadixWare Upgrade Administrator Guide.
- Set up database access parameters in RadixWare Manager following the instructions from the Setting up Database Access Parameters section of the RadixWare Upgrade Administrator Guide.
- Double-click the Distribution Kits branch of your RadixWare Manager project tree. In the list of distribution kits of Radix (org.radixware), select the latest version, сall the context menu of the distribution kit, run the Send to Development command and select the trunk as the target branch.
Execute RadixWare database objects creation scripts following the instructions from the Installing Database section of the RadixWare Upgrade Administrator Guide.Note: if you use Oracle Database Express Edition, you should disable the org.radixware\Partitioning option in the Database Parameters window.
Step 5. Configure your development environment:
- On the developer’s Workstation create a directory and check out the development branch of your RadixWare application repository from SvnServer (note: at this stage it will contain the RadixWare platform only). You can check out the development branch by the one of the following ways:
- Using RadixWare Manager. Select the Checkout item from the context menu of the Development->trunk branch in the RadixWare Manager project tree. Then, select the directory where the working copy must be located.
- Using svn checkout command. For more details, see Apache Subversion documentation.
- Using TortoiseSVN. For more details, see TortoiseSVN documentation.
Download configuration files and templates of the startup scripts for platform components. Make sure that they are set up in accordance with your environments to run RadixWare Designer, RadixWare Explorer or/and RadixWare Server.Note: By default, the file paths are set up assuming that the startup scripts and configuration files are placed in the root directory of the local copy of the development branch.
- Start RadixWare Designer and configure SVN parameters. On the main menu choose Tools->Options and click the Miscellaneous button. Then click SVN Authentication and specify the embedded field values in accordance with the values of the Subversion parameters that you have set up at the 1-st step of the current manual: in the SVN user name field enter the username that you have specified during Subversion installation. In the SVN authentication type field, you should specify the type of authentication at the SvnServer. If the type is “SSH Key File”, specify the path to key file in the SSH key file field.
Step 6. Develop your application:
To start development on RadixWare Platform, create a new layer of the product. This layer is created as follows: in RadixWare Designer call the context menu of the Project root element and execute the New / Layer command.Note: when you create a new layer, as the layer URI you should specify the Base Development URI that you have set at the Step 3.2 of the current manual.
- Develop your application following the instructions from the Developing an Application on RadixWare Platform section of the Quick Start Guide in the RadixWare Programmer Guide.
- Run RadixWare Server and RadixWare Explorer in development mode using the startup scripts and following the instructions from the Starting RadixWare Server and RadixWare Explorer in Development Mode section of the Quick Start Guide in the RadixWare Programmer Guide.
Step 7. Release your application:
- Make a Release following the instructions from the Making a Release section of the Quick Start Guide in the RadixWare Programmer Guide.
- Install the Release in the production or test environment following the instructions from the Installing Created Application(s) section of the Quick Start Guide in the RadixWare Programmer Guide.
- Run RadixWare Server on AppServer for production or testing, following the instructions from the Putting RadixWare Server into Operation section of the Quick Start Guide in the RadixWare Programmer Guide.