Architecture & Techno
Surycat was Built for Connection at Its Core
The whole philosophy of the Surycat platform is inspired by the meerkat community. In a community, each member contributes, interacts, provides skills and expertise and consumes things within its tribe.
Agent-Oriented Programming (AOP) aligned with our vision for Surycat, and enabled us to execute this meerkat concept technically, whereby community members act as agents for the triggers, actions and rules required to communicate and thrive in a specific environment. In Surycat, a source agent sends a message to the workflow agent, which processes it and triggers actions performed by destination agents. This means that workflow execution, data storage, user address book information, time-bound scheduling and the like – each function and element of a system is handled by an agent. It's a pattern that seems so easy, but requires some pretty complex thinking.
With this AOP foundation, the Surycat platform stays flexible and modular, extends to accommodate new elements easily and scales to support mass channels. In turn, then, Surycat customers (members of our tribe!) can create new communication services with the same reliability, flexibility, scalability and ease.
The Secret to Connectivity: agents in actionWe've cracked the code of "silos" by breaking connectivity down to its most granular elements - defining system components as "messages" generated from a source to a target. In this normalized fashion, disparate elements can be integrated in a common and generic way.
Protocols and Transports
Connectivity agents act as two-way protocol converters. They "normalize" the event data flowing from and to the different third-party systems Surycat connects with. That means it's designed so that an agent can implement any kind of protocol (HL7, ESPA, Modbus are some examples of standards we've integrated) on any kind of transport layer (serial link, IP, HTTP, ...) so that multiple elements can connect with each other automatically.
Surycat is the only proven platform able to connect to any kind of system, thanks to this protocol-agnostic design. We have integrated connectors using APIs, standard protocols and even proprietary, API-less* systems in "brownfield" environments. (No surprise, then, that Surycat can and will be used to connect more than just messaging-based systems, but that's a later story...)
* With Surycat, there's no need to rip-and-replace everything. Many legacy systems pre-dated API capabilities, yet they're still essential and functioning components with a lot of sunk costs. Not to worry -- they get new life through Surycat. Such systems capturing events or providing actions always have a way in or out. Based on IP, serial interface, radio signals, digital inputs/outputs, analog phone line... we've integrated in Surycat all the tools and technos to evolve such "vintage" components.
Filter and data manipulation
Each agent acts responsibly in regards to the whole architecture and will optimize the whole system load by filtering events at the source and preparing data for the others to consume. This is implemented with its own set of rules, regular expressions and lookup tables.
Each core element – or agent - can interact together on a communication layer based on XMPP. Therefore, each agent can interact with any other, thus making it possible for each integration to add capabilities (either as source, or action) to the whole. Since XMPP is by default a network protocol, its use with an agent-oriented architecture makes the platform seamlessly scalable. Communication can extend to several nodes, and agents can be spawned / controlled in the same way.
Translation from "tech-speak": Surycat makes different and silo'ed components of a system talk to each other and act according to the rules you set.
Want to know more? Contact us, and we'll get our geek on!
to see how things mix together
to configure your system
Check out connectors
when you connect things together
Visit the Surycat kitchen