This document describes the technical architecture and deployment options for Ebix Evolution.
Ebix Evolution is a smart-client application developed on Services Oriented Architecture (SOA) using multi-tier architecture and Microsoft.NET 4.0 framework to distribute the workload across different layers so as to make the application scalable. The layers of the application are:
- Presentation Layer
- Service Layer
- Business Logic Layer
- Data Access Logic Layer
The Presentation Layer
This layer provides the interface between the user and the service layer. The presentation layer includes all screens that are used to either display or capture information. When the information is requested, the presentation layer captures the user request and calls the correct object in the Service Layer. Similarly, when the Service Layer returns data results, the presentation layer formats the data and displays the results on the screen.
The contents of the presentation layer are developed using Microsoft.NET Web Forms and Bootstrap UI framework. Web Forms are integrated with Microsoft IIS Web Server on Web platform.
The Service Layer
The Service Layer acts as the interface between the Presentation and Business layers, it performs all the required data manipulation based on either the data received from the front-end or Business layer. These objects are implemented using Web services (WCF) running on Microsoft.NET Common Language Runtime (CLR) engine.
The Business Logic Layer
All the functionality in this layer is contained in objects that are represented by an instance of the Service Layer. These objects are implemented using Microsoft.NET classes running on Microsoft.NET Common Language Runtime engine. To maintain integrity of data accessed from or posted to the database by these objects, the objects are embedded into the CLR engine. The classes are written in VB.Net.
The Data Access Logic Layer
This is the actual database that returns results requested by the Business layer. This layer is implemented using an Oracle Relational Database. The database is accessed using the Enterprise Library, which provides consistent access to data sources from relational databases as well as data sources exposed via OLE DB and XML.
The Ebix Evolution web and business layer code is written in Microsoft.NET 4.0 framework that utilizes features provided by the Microsoft.NET Common Language Runtime, which include:
- Extensible types provided by a class library
- Inheritance, interfaces and overloading for object-oriented programming
- Support for explicit free threading that allows creation of multi-threaded, scalable applications
- Support for structured exception handling and custom attributes
- Cross-language integration, especially cross-language inheritance
- Automatic memory management, which manages object lifetime so that reference counting in unnecessary
- Self-describing objects, which make using Interface Definition Language (IDL) unnecessary
- The ability to compile once and run on any CPU and operating system that supports the .NET runtime
Ebix Evolution architecture is using Out Proc session. All user navigation activities and profiles are maintained through the database. This allows Ebix Evolution to be deployed across a Web-farm providing high scalability and redundancy.
Ebix Evolution is built on n-tier architecture which catches the exceptions on each tier. At each level exception is caught and the same exception is passed to the upper level. At the top most level the Ebix Evolution exception handler logs the exceptions in the database.
Message Queue and ESB
The architecture of Ebix Evolution provides the capability of connecting multiple installations of the system across locations. For connecting to external systems, an XML based gateway and messaging services are provided. Ebix Evolution provides the capability to send data across systems via XML messaging. SOAP over http/s is used as the transport for sending data.
Ebix Evolution has been designed to be deployed either on a single server or in a high-scalable load-balanced and clustered Windows server environment. Load balancing is utilised to distribute requests to different servers within the server cluster, which optimises system performance and increases availability and scalability of the Web-based application.
In order to make the application highly scalable, the complete Business Logic is abstracted into objects built using VB.Net. Any computation or logic is encapsulated as Assemblies. As the load increases, these web services can be distributed across any array of machines that can handle the load. A typical Ebix Evolution production deployment runs on a web-farm with two or more application/web servers and database servers in a cluster to provide redundancy.
The system leverages standard technologies for vertical and horizontal scalability to achieve performance and scalability, including cluster, load balance, multi-thread and process in parallel.
Ebix recommends the following hardware and software for deploying the Ebix Evolution production environment. Other environments such as UAT, Beta and Alpha can be created on similar lines.
- Hardware Load Balancer
- Firewall and Switches
- Two (2) web servers - Windows 2008 Advanced server, IIS 7.0
- One (1) DB servers (In an Active-passive cluster) - Windows 2008 Advanced server, Oracle Database
Software and Tools used in Ebix Evolution:
- VB.Net for the front-end interfaces, server side components and web services
- ASP.NET for building Pages for the web application
- Oracle RDBMS
- ADO.NET for accessing the database
- XML with SOAP protocol for all data transmission
- Microsoft Visual Studio 2010 as IDE
For the End User:
- Internet Connection - Broadband recommended
- Adobe Acrobat Reader (or similar) - Acrobat Reader 4.0 or higher for forms and printing functions (Free download)
- .NET run-time environment (Free download)
- Operating System - Microsoft Windows 7 or above
- Microsoft Office 2007, 2010, or 2013 - required for Word Merge and Export to Excel
For B2B Integration:
- An internet-facing web server addressable with a 'real' routable IP address
- An application running on the web server capable of accepting and responding to HTTPS POSTS and GETS
- An application or interface capable of supporting XML interfaces
- For secure web server-based interfaces, a digital certificate obtained through a recognised certificate authority. This certificate should support client authentication
- PGP or a PGP-compatible application to encrypt using public key/private key technology