Elixir Technology

Elixir Technology (Run Then Specify)

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.