BLADE
An open-source development framework with a suite of sample apps to fit your audio / video streaming needs.
Overview
Develop of carrier-grade, network communications services quickly and easily using the Blended Layer Application Development Environment (BLADE).
BLADE consists of four components:
- Framework, a set of development libraries of developing custom applications
- Application Router, a library that uses Finite State Machine logic to orchestrate network services
- Application Suite, a collection of pre-built applications to handle common communication needs
- Management Console, a web portal for managing all aspects of the system
Framework
Have you ever written highly scalable, fault-tolerant communications applications before? If so, you'll notice that there are some complexities to overcome like threading and managing state in what is inherently an asynchronous design. Pushing and popping session variables from a distributed memory cache for each transaction typically results in spaghetti-coded applications that are difficult to write, debug and maintain. The end result resembles mad assortment of Java class files, each representing a page out of a Choose Your Own Adventure book. You have to constantly flip back and forth through the pages in the book to reach the final destination.
In contrast, the BLADE framework uses Java's Lambda Expressions to automagically save and restore session variables in the memory cache with no thought required by the developer. This also allow for a simpler style of writing code which transforms what was previously a complicated mess into a short book of poems, with each poem (Java class file) pertaining to a particular topic and read from top-to-bottom in coherent, readable fashion.
Features of the Framework include:
- Lambda Expression APIs for automatic session variable management and simplified readability
- Enhanced Logging to visually depict call-flows running through the system
- Configuration Management to dynamically modify application behaviors without requiring a restart
- B2BUA Interface simplifies the creation of Back-to-Back User Agent services
FSMAR
The Finite State Machine Application Router (FSMAR) uses state memory and pattern matching to route traffic between network services. Think of it as an orchestration engine for audio/video streaming microservices. This allows developers to write tiny snippets of code and string them together in an intelligent manner. The FSMAR knows who you are, where you've been and where you're going.
Application Suite
In addition to development APIs, BLADE comes with a collection of pre-built applications (network services) to support many common needs.
Services include:
- R3, the Reductive Reasoning Router. It uses Regular Expression pattern matching to select on any type of data to find a route in a network translation map, which in turn could have another translation map ad infinitum.
- Load Balancer. Shape traffic by routing transactions through the network either in series or in parallel. Define fail-over behavior for network outages.
- Proxy-Router. Register network endpoints and route traffic between them based on their published contact information.
- Presence. Utilizes Publish, Subscribe and Notify methods to manage endpoint states. Route traffic based on an agent's skills and online status.
- Access Control List. Allow or deny calls based on multiple conditions.
- CRUD. Stands for Create, Read, Update and Delete and it transforms incoming and outgoing data to facilitate integration between incompatible network hardware.
- Queue. Protects network resources by queueing up calls during system overload. By doling out calls at an even pace, the Queue service prevents cascading network failures.
- Transfer. Supports the SIP REFER method and facilitates call transfers without the receiving endpoint's knowledge. Support of REFER is not typical among most carriers and the Transfer service prevents unexpected call termination.
- Analytics. Pipe transaction data to Oracle Analytics Cloud (OAC) for deep understanding of call completion, failure and other statistics.
- 3PCC, Third Party Call Control. Make, receive, mute, conference and transfer calls via REST web services.
- Test UAC, UAS and B2BUA. Test callflows by sending, receiving and manipulating transactions through the system.
Management Console
Still in its infancy, the management console orchestrates the behavior of applications.
Currently, the Management Console features:
- Detection of configuration file changes and pushes those changes to individual network services
- Dynamically generated HTML web pages for the editing of configuration data. Prevents typos associated with modifying application configuration JSON data by hand.
Future enhancements include:
- Drag & Drop GUI for configuring the FSMAR. Visually represents callflow configuration as a state machine.
- Media Server Testing Toolkit. Play, Record and Conference audio / video calls through various support media servers.