Elixir has built a web based framework that allows us to develop smart and scalable enterprise applications and
is able to adapt to enterprise functional and non functional requirements.
Our framework is innovative, it merges several technologies such as MDA (Model Driver Architecture), Generic
programming, SOA (Service Oriented Architecture), and other Design patterns in order to generate 3 Tiers web
based applications from UML (Run Then Specify).
As our framework is based on J2EE, it is independent from platform.Elixir Products and Solutions have rich
features and qualities that differentiate from other solutions, giving them a competitive advantage. Each of
Elixir systems/modules has the following features:
User Interface :
- The system is web-based and supports both HTTP and HTTPS protocols.
- The GUI design is simple and easy to use in terms of information display and the look and feel.
- The system, including its interface, data entry fields, menus, etc., supports multiple languages, based
on user preference.
- All GUIs, including the format of frequently used data, such as date, currency, etc., are unified.
- The system automatically verifies input data for correctness, accuracy, validity, and integrity.
- Data masks are used to filter the input data, and appropriate error messages are displayed in case of
entering incorrect data.
- The system has the capability to display clear error messages, as well as warning messages for critical
operations such as deletion.
- The system provides an easy way for forward and backward navigation through the system’s web tree showing
the path that the user used to reach the current page.
Workflow Engine:
The system is available to all employees according to their privileges and positions. A workflow engine insures
the correct work distribution and security rules according to Business Process Workflow.
System Integration:
- The system has the integration/interfacing capability with other applications and systems through a set
of web API.
- The system supports standard languages, such as XML, for data exchange.
- The system uses the ETL process to enter row data, and import data to a new data base. It supports XML,
Excel, Text, and Pdf.
Authentication:
- Basically, user authentication is based on user name and password. Moreover, the usage of HTTPS protocol
increases the system security and reduces the possibility of password cracking.
- To further increase the security, passwords are encrypted and stored in a database.
- The system logs all changes that occur on passwords.
- The system supports CAPTCHA test to ensure that the user is a human and not a computer. The CAPTCHA is
supposed to appear after multiple failed attempts and the system will lock the account accordingly.
Authorization:
- Access rights and permissions are based on roles not users. This makes the process of adding a new user
or replacing another easier. At the time of creating a new user, he or she will gain all the rights
associated with the assigned role.
- The system allows us to divide roles into groups, in order to match any changes that may occur to
organizational structure.
- Access rights and permissions are defined according to several criteria such as:
- Work status, phases or time
- Class conditions
- Object conditions
- IP address
- The system administrator is able to get any user out of the system at any time.
Database security and management:
- Database is secured by using 3 Tiers design model and connecting the application server with the database
server in a V-LAN separated from the one which connects the application server to users.
- HTTPS protocol is used to access the application server.
- Remote users are not allowed to access the database directly; they can access the database only through
the interface of database server itself.
- The automated system management operations such as backup and analyzing are scheduled properly.
Alerts:
- The system has the capability to monitor (listen to) some predefined events and send the appropriate
alerts accordingly to a certain role (or group of roles). For example:
- Attempting to log into the system in a wrong manner
- Attempting to access the system remotely from outside the work location or outside the working hours
- Attempting to access critical information beyond the normal range.
Monitoring:
The system has a process to log all transactions that users carry out such as change, search, delete,
import/export, print, send email, etc.
This process is able to generate log reports that allows the system administrator or the person in charge to
know who does what, when, and why.
System Availability:
To increase system availability the following techniques are adopted:
- Clustering at the level of application servers, which ensures that the system will continue providing
services in case one of the servers fails.
- Replication at the level of database servers, which ensures that the system will continue providing
services in case that the main database server fails.
- Redundancy at networking level, thus redundant connections must be set between different nodes.
- Fault Tolerance.
Info Broadcasting
The system has a technique to broadcast information via the application interface. It can be used to broadcast
news, instructions, performance reports, decisions, changes to the system, etc.
Design:
The system is designed according to new design models/patterns which guarantee system scalability and
stability. Some of these design models/patterns are:
- Web based/3 Tiers (is a must).
- ORM/DAO
- MVC
- SOA
- Message Based
Platform Independence
- Operating Systems: windows, linux, unix.
- Data Bases: Oracle, MySQL, postGres, sqlServer.
Performance:
- The system is able to achieve interactive response time. In addition, the system is able to process at
least 50 concurrent users using a server with 4 GB Ram, 2.5 GH quad core CPU.
- The size of web pages is relatively small; it does not exceed 50 KB (before being compacted according to
http1.1 protocol) which make transferring data over the net faster, even during peak time.
Functional Scalability:
The system allows addition of new services without affecting existing ones. The system is based on SAO design
pattern to separate services from each other, and AOP to separate nonfunctional requirements and crosscutting
aspects from functional requirements. In addition, IoC design pattern is adopted to add new aspects or new
services without making any changes to the existing/previous applications or services.
Report Generator:
Elixir has a very distinguish report generator that is easy to use and does not need any technical background.
It allows users to build their own reports without any knowledge about the data base schema.