PhixFlow Architecture
This page is for system administrators. It describes PhixFlow's architecture and explains how PhixFlow integrates into a company's IT system.
Overview
PhixFlow is an innovative Revenue Assurance and Applications Automation solution which can be configured to collect, analyse, enrich, merge, validate, report on and update data from multiple applications simultaneously within an organisation using drag and drop modelling and business logic scripts. No integration or infrastructure programming is required.
PhixFlow is built on a single architecture i.e. it is not made up of several products with different architectures bolted together. PhixFlow has been in continuous development since January 2005 and in live operation at customers since November 2006 with new functional releases every four to six months.
Connectivity to Other Systems
Because of the nature of PhixFlow, good connectivity to other systems is critical. PhixFlow can be configured to fetch data via Database Collectors, FTP File Collectors and HTTP Collectors. In addition PhixFlow can export data files to remote servers over FTP, update any external JDBC compliant database, and invoke web services over HTTP.
PhixFlow Architecture
Web-Based Client: The PhixFlow client is browser-based Rich Internet Application which will run on any major browser and on any major operating system.
PhixFlow Application Server:Â The PhixFlow server is a Java-based application which runs within a Tomcat container. PhixFlow supports installation on all the major hardware architectures and operating systems. Existing installations use Solaris, Linux and Windows based servers.
Database Server: PhixFlow uses a JDBC compliant database to store both configuration data and working data. Existing installations currently use Oracle, Microsoft SQL Server and MySQL/MariaDB. The Database Server may be installed on the same machine as the PhixFlow Application Server to create a "single machine" deployment. Alternatively the Database Server may be installed on a different machine creating a "dual machine" deployment. Both are valid implementations and the deployment choice depends on the preferences of the IT infrastructure team. Figures 1 and 2 show the different deployment options.
Active Directory/SAML: In addition to managing users locally within the PhixFlow application, PhixFlow can be integrated with one or more Active Directory servers, allowing users' credentials, passwords and access rights to be managed centrally.
Email Servers: PhixFlow can be connected to multiple Email servers. This allows PhixFlow to process data files received as email attachments, and to publish reports and notifications to users via email.
Diagrams of Single or Dual Machine Architecture
Figure 1 Single Machine Architecture
Figure 2 Dual Machine Architecture
Application Server
Function
The PhixFlow Application Server provides the following services:
- Deliverfully customized web-based client applications over http/https
- Provides XML configuration and analysis data to the web-based client
- Executes unlimited, configured "analysis models" according to set schedules e.g. daily, every 5 minutes or runs analysis on user request.
- The analysis engine:
- Reads data from other JDBC compliant databases using template SQL configured within the models.
- Reads data from files according to structures configured within the models
- Reads data from websites or web services over HTTP according to logic configured within the models.
- Transforms the data according to rules configured within the models e.g. merges data from different sources, enriches the data using "Excel-like" expressions, performs referential lookups, filters data, aggregates data etc.
- Updates external databases using template SQL or "stored procedure" calls configured within the model
- Exports structured data files e.g. CSV or Excel documents according to structure definitions defined in the model.
- Invokes web services over HTTP based on model parameters
- Emails files and spreadsheets to users
- Creates graphical reports and automatically emails them to configured users according to defined schedules
- Archives data according to defined, data specific schedules
- Provides user group role based security and secure access to applications, data, charting and reports
- Maintains a full and detailed audit trail
- Maintains a full and detailed log trail of all analysis
Integration
Other than providing SQL templates in PhixFlow's Active Database CollectorsTM and Active Database ExportersTM no coding is required to interface to other systems. PhixFlow provides a complete integration and task management framework. Analysts only have to consider the business problems being addressed.
Deployment Environment
The PhixFlow Application Server is a Java based application which runs within a standard Servlet container on any server environment supporting standard JVM. Typical server environments are:
- UNIX (e.g. Solaris, AIX, HP-UX)
- Linux (e.g. Redhat, Ubuntu, Debian etc.)
- Windows Server
However PhixFlow has an extremely open architecture and any environment which supports at least version 2.2. of the Java Servlet Specification should support PhixFlow. The recommended servlet container is Tomcat.
Minimum Server Specification
The following server configuration should be considered a typical minimum environment for PhixFlow deployment. A server with this specification will enable PhixFlow to process typical analysis models for medium sized organisations. For organisations with large analysis requirements e.g. rerating 30+ million events in a single analysis step, then PhixFlow consultants should be engaged to carry out a detailed machine sizing exercise based on the complexity and number of the models that need to be configured and the volume of data that will be processed.
CPU | 2 x Quad-core 2.6 GHz |
Memory | 16 GB (Expandable to 64 GB) |
Disk | 8 x 146 GB in RAID5 configuration |
Operating System | 64 bit Red Hat Linux Enterprise Edition |
Network Connection | 1 Gbit Rj45 Ethernet |
Table 1 Minimum PhixFlow Server
A typical server with this sizing is the HP ProLiant DL380.
Database Server
The Database Server is a JDBC compliant database e.g. Oracle, SQL Server, MySQL, and is used as an efficient repository for:
- PhixFlow models and other configuration data
- PhixFlow status information.
- PhixFlow working data and results data
Web-based Client
Environment
The PhixFlow Client is a "Rich Internet Application" which uses the very latest web technologies e.g. AJAX to provide an interface which looks and behaves like a regular desktop application. However PhixFlow runs within all standard browser applications:
- Internet Explorer
- Firefox
- Safari
- Chrome
Because these browser applications run in many operating system environments, PhixFlow also naturally supports UNIX, Linux, Windows and Apple OS.
PhixFlow requires no installation on the client. Users browse to the URL which points at the PhixFlow server and the application launches within an http/https session. This also means that users can access PhixFlow from anywhere in the world provided there is secure http access to the PhixFlow server.
PhixFlow is a "multi-lingual" application i.e. it supports multiple languages in a single instance e.g. for a pan-European organisation a single instance of PhixFlow is able to support native language screens for all users.
Client Functionality
All PhixFlow functionality is accessed through a single client application. Access to functionality is defined at the user group level using roles based security. Key functionality includes:
- Definition of control frameworks i.e. areas of system monitoring or task automation
- Prioritisation support for control design and deployment
- Creation of unlimited analysis models through the drag-and-drop design screens
- Chart and report definition
- User task lists and task maintenance
- Drag-and-drop definition of user-defined screens
- Guided drill down into analysis results to determine root cause analysis
- Evaluation of the effectiveness of the control framework
- User administration
- Scheduled task definition
- Log viewers and drill down for Active and Completed tasks
- Audit trail summaries and detailed drill down
- Archive log viewing and archive restore
- Model import and export via XML
- Base system configuration e.g. status codes, external queues