Technology

Overview

Ease of use, data integrity, and performance are the primary design considerations of Client Support Software’s systems. With development since 2002, our software has demonstrated its reliability, flexibility, and scalability.

Client Support Software’s solutions can be tailored to fit your organization’s specific needs.

To achieve this, our software stack is built on top of open source technologies including FreeBSD, MySQL, PHP, Apache, and Asterisk.

Cloud Hosting Environment:

Client Support Software hosts its applications on DigitalOcean, which offers cloud leading price/performance. All of the data is maintained on multiple SSDs for redundancy. Data centers near your geographical location are selected to offer optimal performance. Client Support Software’s configuration provides additional redundancy to ensure availability of your data.

Operating System:

logo-red

FreeBSD is the operating system at the core of our stack.

With FreeBSD’s advanced security features, jailed virtual environments, and a modern filesystem, Client Support Software’s systems are configured to minimize impact when a vulnerability or exploit is discovered. FreeBSD’s seamless upgrade paths provide a stable and predictable foundation.

Back in 2002, we started with FreeBSD 4.8-RELEASE and today FreeBSD 12.0-RELEASE provides the foundation for our applications. The power of Jails, ZFS, and other capabilities help us meet your needs efficiently.

Jails allow process isolation in virtual computing environments. They are significantly more efficient than traditional virtualization because the sandboxing occurs at the kernel level. As first class OS citizens, they are also better integrated than containers in Linux. Jails run with the same resources and performance as the host. Our applications use jails to compartmentalize potential security threats and provide complete stack backups

The ZFS file system brings data management to the 21st century. It features self-healing, redundancy, snapshots, and copy-on-write. The filesystem supports transparent compression which maximizes the space/performance envelope of your data. Snapshots provides roll backs for troubleshooting and data exploration. Unlike traditional RAID hardware, when a hardware failure occurs, downtime is minimized or eliminated because ZFS can repair itself while filesystems are active. ZFS replication only transfers data that has changed on the filesystem making it orders of magnitudes more efficient than backup tools like rsync. All these features are utilized to provide realtime, consistent, and complete backups of your data across multiple geographical locations.

FreeBSD’s suite of tools work together to provide a stable, secure, and scalable infrastructure. https://www.freebsd.org/

Programming Languages:

200px-PHP-logo.svg PHP is a popular general-purpose scripting language that is especially suited to web development. Fast, flexible and pragmatic, PHP powers everything from blogs to the most popular websites in the world.

PHP is at the core of the Client Support Software applications. Designed from the ground up with object-oriented and functional programming design principles, our applications expand their capabilities with each release of PHP. Client Support Software has developed a framework shared by the CMA, WMA, and EMA. It’s been battle tested since 2003. Client Support Software uses the latest features available in PHP 7.3. http://www.php.net

smarty-logoThe CMA allows you to manage and create system emails and Client packages using a Document Template System. Documents are created using HTML and Smarty.  The CMA provides access to underlying data via Smarty Template variables. Smarty provides a simple and secure method of adding programmatic logic to your templates. https://www.smarty.net

jquery-logojQuery is a fast, small, and feature-rich JavaScript library. It makes things like HTML document traversal and manipulation, event handling, animation, and Ajax much simpler with an easy-to-use API that works across a multitude of browsers. Ajax requests are used throughout the CMA to improve page load times and responsiveness. Slow computations are performed asynchronously and the data is available by the time the you are ready. The result is a great user experience. https://jquery.com/

Database:

mysql-logoMySQL is the database engine that powers Client Support Software. This is where a lot of performance fine tuning occurs. An under-performing query can slow down application responsiveness considerably. To improve user experience, a Master/Slave architecture is used. The CMA is aware of database replication and can take advantage of this by offloading non essential queries such as those used for reports to a pool of slave databases while the master database remains available for quick updates. Using a pool of slave databases throughout the CMA reduces the load on the master database and improves application responsiveness. If greater performance is necessary, additional slaves can easily be added. While many datasets perform very well with just one master database, the option of adding slave servers provides a simple and effective way of scaling with your growth. https://www.mysql.com/

Faxing:

The CMA features built in fax management. Proposals and Client paperwork can be queued and managed from a central location. The CMA transmits PDFs via the eFax API. eFax transmits faxes and relays transmission status to the CMA. Users can fax using contact information from Clients or Creditors. https://www.efaxdeveloper.com

Telephony:

logo-1The CMA integrates with Asterisk and FreePBX to provide state of the art Call Center functionality including click-to-dial functionality and call log reporting. Each call is logged within the CMA and linked with either Client or Creditor records. Review call history easily by Client, User, or Agency. Run reports to determine call volume and employee performance. View queue activity and ensure Client calls are processed efficiently. VOIP, T1, Hybrid? – Asterisk is up to the task.  https://www.asterisk.org Our software has been designed to integrate seamlessly with the FreePBX distribution. https://www.freepbx.org

Data Integrity/Backups:

Client Support Software’s applications rely on a modern file system technology called ZFS. The Z File System, is an advanced file system designed to overcome many of the major problems found in previous designs. ZFS maintains data integrity by checksumming blocks. When used with hardware redundancy the filesystem gains the ability to self-heal. Every time data is accessed, ZFS compares it with a stored checksum. If a mismatch occurs, ZFS retrieves the data from a redundant source and corrects errors. This helps prevent bit rot for large datasets. In addition, the pooled architecture maximizes both read and write performance as the data is stripped and mirrored across storage providers. Copy-on-write ensures that data is not lost or damaged even in the case of power failure. In the event of drive failures, new drives can be silvered while the file system is active maximizing uptime and doing away with hours of potential downtime. Coupled with dataset snapshots, data corruption and data loss are things of the past.

In addition to the capabilities provided by the ZFS filesystem, a set of backup tools run to ensure further data availability.

  • A realtime backup of all data is stored within the primary data center.
  • A realtime backup and 15 minute snapshots of all data occurs at an offsite data center.
  • Full encrypted data backups are performed daily.

ZFS and Client Support Software’s Data Backup Tools work together to serve your data needs.