XEND Core Platform
It’s the central module of the XEND Architecture. It consists of a set of high optimized modules that run all the internal business logic and connections with third-party external services. Connecting with a database, the platform allows creation, updating and managing of all the business entities: users, transactions, quotes, prices, rates, etc. Core Services can be accessed internally via the built-in Web Interface (Secure Platform) or from external systems via the API module. The platform is implemented in a Java Enterprise environment based on Play Framework 2.5.x and using Hibernate/JPA to access the database. One of the strongest points of Play Framework is its development cycle: for example you can just fi x the code, go back to your browser, hit reload, and get the changes, all without writing, compiling, and deploying, typical hassle of J2EE Web Development. Also Play has a sophisticated URL route system, an eff ective template engine, it is stateless and high productive and a built-in dynamic languages and localisation system.
The XEND API is a REST interface consisting of a set of methods that allow external systems to access all the services provided by the Core Platform. Via the API it is possible to implement a full money transfer front end system. The Xendpay iPhone & Android apps use the API and off er to fi nal users all the functionality of the secure website. As mentioned, the API is REST and uses JSON protocol witch is light and easily “parsable” by the client applications.
This module, part of the Core Platform, allows to plug-in clients for external services. The platform is easily expandable and integrable with external systems by using standard protocols via HTTP/HTTPS: Soap, XML, JSON, CSV, etc. An example of connectors are: Merchant Gateway (to perform payment via Credit/Debit cards), and Price Service (to get real-time currency rate conversions).
Jobs & Services
Jobs & Services are a set of convenient batch applications which perform diff erent kind of operation directly on the database. This module has been explicitly written outside the Core Platform in order to have more fl exibility in executing the scripts (often on demand) without rebuild/restart the Core Platform.
Admin can access all the services provided by the Core Platform. It is written in Java / Play Framework and runs on a separate server IP Restricted (only users within the XEND Network can access it).
The XEND platform does not process payments in a direct way, but uses an external system to finalize that operation. The communication between the Core Platform and the Payment Processors is based on Asynchronous Queue System, delegated to Amazon SQS Service.
Infrastructure and Scalability
The XEND infrastructure is a cloud-based solution hosted on Amazon Web (Linux AMI). The XEND network is contained within an AWS Virtual Private Cloud, which is a logically isolated section of the Amazon Web Services (AWS) Cloud where you can launch AWS resources in a virtual network that you defi ne.
The scalability of the system is driven by three major factors:
- Code optimized and implemented with high standard software quality and best practices
- Load Balancers
- Multiple Database instances and replication
AWS virtually allows an infi nite number of Load Balancers –the can very easily confi gured and started via the AWS Web Interface. Tests show that every Load Balancer can serve at least 40k visitors per day keeping very high performance. Whereas the bottleneck become the Database, it will be possible to run multiple instances of Postgres and set in place a replication system.