AVAX is a application server designed for deployment of high performance and superscalar multi tier applications and systems.
AVAX offers major advantages and features in comparison with standard application servers
- support for combined multithreading / multiprocessing / clustering
AVAX supports a combination of multithreading / multiprocessing / clustering while deploying and running complex high performance and load systems and applications. Multiprocessing means that many parallel server processes ( in case of JAVA run as JAVA Virtual Machine processes ) are run on a server computer thus optimizing usage of system resources, increasing general system availability and minimizing performance losses due to garbage collection. The multiprocessing approach can be extended to clustering model: many multiprocessor machines are connected via local network and create a new quality providing high level of performance, scalability and system availability.
- high speed internal communication based on XML / WebServices and SOA
The communication in AVAX application server is based on high performance XML-based communication, supporting in general the WebServices standard. The optimized high performance XML communication as performant as native communication and offers superior functionality. Morever, AVAX allows a free and flexible choice of communication protocol: the administrator can switch between shared memory communication, native high speed serialization ( using specially optimized comm lib ), XML-based communication, compressed XML or binary, compressed, encrypted etc. - on process-to-process level. The AVAX system can integrate computers / processes communicating with the application server with any combination or choice of the communication protocol - as the capabilities of the system and its environment require.
By using XML based communication AVAX can integrate application processes running in different programming languages: both JAVA based server processes and C# based parts can run peacefully with each other.
- high scalability ( superscalability )
AVAX applies internally a flexible load balancing algorithm. The requests are allocated by the load balancer to available computers and processes based on current system state and expected session load.
The configuration of the application server can be changed dynamically, the number of running active application processes can be controlled automatically. By applying the combined multiprocessing/clustering approach AVAX is capable of using effectively the available hardware and its resources without system related performance losses.
The super scalability is achieved through special solutions in critical parts and layers, and results in linear load curve.
- programming language independence
AVAX versions are implemented in JAVA, C#, C++, Delphi.
Connector modules for other programming languages are in development.
The applications can be also developed in many different programming languages and run by AVAX. As already mentioned ( communication ), the implementations in different programming languages can be simultaneously deployed and communicate with each other via XML based high speed communication.
It is also possible, to develop the client part of the application eg. in C# and the server part in JAVA, and to let them run and cooperate with each other.
Because AVAX is using internally the application framework JUVE, the heterogenous development in different programming languages while using JUVE application framework is simplified, and development costs are strongly reduced.
For system architect, there are completely new options emerging.
It is for example imaginable, to develop the GUI and client part of the application with C# in order to achieve maximum on user friendliness, and at the same time to develop and deploy the server part of the system in JAVA, on highly scalable UNIX server computer system.
There are AVAX implementations in JAVA, C#, C++, Delphi.
AVAX internally is based on the application framework JUVE, but it is not a prerequisite to use JUVE in application development - except for XML communication.
AVAX implements in general the Service Oriented Architecture pattern. The communication between components is based on Web Services SOA concept and uses the implementation provided by the JUVE Web Services application framework.
- Application Management
AVAX manages the deployed applications as ordered by their descriptors. The application descriptors define the application and its interfaces ( JUVE Web Service Provider ), commands, user and their rights.
JUVE Web Service Provider define the application interface and its request methods on the application level. The request methods define their input/output parameter. Both primary data types as application specific domain classes can be used as input/output parameter of a request method. The interfaces derive from Web Services standard, but are generic. The domain classes must not be registered in order to be passed as parameters.
An application can be accesssed via many different Web Service Provider interfaces. The software architecture supports the reuse of software: the Web Service Provider can be designed in generic way and reused in many different applications.
- User Management and Authorization
AVAX supports the user management and access authorization based on the user role principle. The access or execution authorization is assigned and controlled to user roles. Each user in the system in context of each application can play many different user roles.
The user and authorization management is local for each registered application.
The access rights and authorizations for each user role can be defined on many levels:
- domain classes authorization level
the administrator can specify read/delete/write rights for each separate domain class
- Web Service Provider authorization level
the administrator can specify execution ( call ) right for each separate Web Service Provider
- Web Service Provider request method level
the administrator can specify execution ( call ) right for each separate Web Service Provider request method
- internal / external command level
the administrator can specify execution ( call ) right for each separate internal or external command within the application
AVAX offers additional extended functionality, necessary for comprehensive management of the target application system:
- Resource Manager
The AVAX Resource Manager manages all system resources, requested and utilized by the applications: Database Connections, Data Stores, File Stores, Static Data Stores, etc.
Diversified access and allocation strategies can be applied:
- Shared Pool Resource Access Strategy
- Unlimited Generative Resource Access Strategy
- Read Only Resource Access Strategy
The purpose of using the Resource Manager is to optimize the usage of resources and to improve the performance of the application. Generally this goal is achieved by extensive usage of resource pooling and caching. By selecting the appropriate Access Strategy the system architect must take into account the properties of managed resources.
AVAX applies an internal task scheduler, managing the execution of jobs within the system. The AVAX Task Scheduler manages automatically the execution of these jobs and tasks in background. Via scheduler interfaces the administrator or the application can control the execution of jobs by the scheduler.
New perspectives for application development and deployment
AVAX defines a new standard in the application server products area. AVAX emerges as an alternative to J2EE application server products and .NET-based Windows Server 2003 architecture, offering the advantages of the WebServices technology, with no compromizing on performance, scalability, programming language and operating system independence.
By using AVAX the system architect benefits directly in many aspects of its system architecture:
integration of application and components developed in different programming languages is now and in the future possible
integration of distributed system components in LAN and internet is with no compromize on performance possible
flexible choice on target architecture is possible: standalone, 2-tier, 3-tier, n-tier - even without rewriting the code
flexible distribution / integration of existing and future application is supported
the reuse of software code is simplified
The investment in new software development based on AVAX and application framework JUVE is linked with serious advantages due to:
high scalability and performance strongly reduce the hardware costs
usage of future oriented technology ( WebServices ) extend the lifetime of the software
usage of the application framework JUVE in software development reduce the development and maintanance costs and risks
Avax Application Server Architecture ( Power Point presentation as PDF )