Our Technology

"Every once in a while, a new technology, an old problem, and a big idea turn into an innovation."

ENTITY FABRIC The Universal SoftwareSolutions Entity Fabricis used to describe the Domain Model for the associated application. TheFabric allows for granular, tightlycoupled definition of all elementsincluding structure, relationships,permissions and logic. APPLICATION FRAMEWORK The Application framework exposes a dynamic and responsive, web-based interface to the Entity Fabric. The integrated Application Programming Interface is a first-class citizen of the framework ensuring full support for the Fabric via a common authentication provider for both user and machine interactions. uHUB uHUB The Hub enables dynamic, data-drivenprocess modelling and execution of actionsIt allows for true task segregation, separation of concern and out-of-bandprocessing - making it ideally suited for server-less cloud based environments.

Architecture

We pride ourselves on our technology and believe in making the latest innovations available through our framework to all our partners. What was previously only available to Enterprise sized organisations is made accessible to small to medium sized businesses. Our dynamic and adaptable architecture and an underlying Microsoft Azure Cloud basis allows us to access an amazingly powerful suite of features on a pay-per-use basis, meaning we can make this available at a next to no cost. Our architecture is based on three primary components. The Entity Fabric component describes the Domain model for the Application. This allows for granular, tightly coupled element definition including Structure, Relationships, Permissions and Logic. The Application Framework provides interaction with the Entity Fabric via a dynamic and responsive web-based application along with an integral API. Our uHub is the engine behind the scenes, providing immense capability for dynamic, data-driven process modelling and execution of actions.

Application Framework

The Framework allows User interaction with the underlying Entity Fabric through a dynamic and responsive web-based application. A heavily reliance is placed on re-usable, self generating, convention based components. API endpoints are available for any defined entity with a common authentication provider for both user and machine interactions ensuring that all permissions and business logic are applied at any level throughout the eco-system.
  • Application

    The Application layer allows user interaction with the underlying Entity Fabric. Through the use of re-usable, self generating, convention based components, dynamic and responsive desktop, mobile or web-based application are easily achieved with a shared authentication provider for both user and machine interactions.

  • API

    The API provides full controlled interaction with all elements of the Application layer. Full technical details of the API are available in our documentation portal.

Entity Fabric

Our Entity Fabric provides the Domain Model for the eco-system. The Fabric allows for granular, tightly coupled definition of all elements including Structure and Relationships, Permissions and Logic.
  • Structure and Relationships

    The structure is descibed as a strongly typed first-class citizen of the Entity Fabric. Relationships between entities are fully defined within the structural layer allowing for multi-level entity traversal from any related entity.

    The strongly typed nature of this component allows external systems to query the entity metadata including navigation paths for relationships and entities and associated properties.

  • Logic

    The logic layer is an integral component within the Entity Fabric. It provides capability for custom entity validation (with transaction continuation or rejection), manilpulation of related entities and iterative execution of logic for those entities. The logic layer will automatically log all transactions.

    Logic may be injected into the execution pipeline at all stages allowing for pre-transaction and post-transaction components. Logic may also be extended to communicate with external services via Webhooks.

  • Permissions

    Permissions are defined on an action type basis as retrictive expressions. These are applied at the lowest level ensuring security compliance regardless of the request instigator, source, filter and selection criterea.

    With permissions being data driven, any alteration results in full transaction logging via the standard Logic layer process.

uHub

uHub provides dynamic, data-driven process modelling and action execution capability. Through separation of concern and out-of-band processing - true task segregation is achieved making this ideal for server-less cloud based environment. With this underlying environment, Microsoft Azure provides the perfect home for the platform allowing for utilisation of other Azure features such as Machine Learning, Big Data Analytics, PowerBI etc.
  • Sources define information origins for Actions.
  • Triggers are used to initiate Actions.
  • Destinations define information targets for Actions.
  • Outputs are artefacts generated for specific Transformations.
  • Transformations allow information manipulation during the Action.

Triggers

Triggers are used to initiate Actions. Currently supported Trigger elements include;
  • Timer Trigger

    Timer triggers are schedule and recurrence based. The ability for singleton or multi instance provides flexibility.

  • Subscription Trigger

    Subscription triggers execute against subscribers. Subscribers operate against transformed data sets providing capability for subscription replay and efficient concurrent large set execution.

  • Queue Trigger

    Queues may be used as the triggering mechanism, with the optional ability to utilise the message content as a source element.

  • Webhook Trigger

    Webhooks allows triggering from an external web-based source, with the ability to optionally utilise the payload as a source element.

  • Table Trigger

    Tables entries may be used as a triggering mechanism. These are often coupled as the source element combined with a range of transformation options such as filter, grouping, aggregation etc.

Sources

Sources define information origins for Actions. Currently supported Source elements include;
  • Azure Blob Storage

    Azure Storage Blob containers can be used as Source elements for processing. Examples include PDF generation, Image optimisation and text extraction.

  • Azure Table Storage

    Azure Table Storage entries may be used as Source elements. They are often coupled with a range of transformation options such as filters, grouping, aggregation etc.

  • Azure Queue

    Azure Storage Queue message content may be used as a Source element.

  • Relational Database

    An RDBMS such as Microsoft SQL can be used as a Source element.

  • Webhook

    A Webhook Source element allows the Action to consume externally provided, web-based payloads.

  • SMS

    Incoming SMS can be used as a Source element allowing, for example, Workflow approvals via SMS.

  • E-mail

    Incoming e-mail can be used as a Source element allowing inclusion of e-mail response data for example.

  • Azure Management API

    The Azure Management APIs can be used as a Source element. Common uses include such things as Health monitoring or logging of Resource Metrics

Outputs

Outputs are artefacts generated for specific Transformations. Currently supported Output elements include;
  • Text Extraction

    Source data can have individual text components including words, parts and associated instance count extracted and routed to the same, or alternate destination.

  • PDF

    Suitable source elements can be rendered as PDF documents.

  • Image Optimisation

    Images can have a range of optimisations applied including Thumbnail generation, Orientation manipulation, OCR extraction and Image content identification.

  • Video Optimisation

    Video sources can be output with a range of alternate sizes/ encodings. Additionally, keyframe thumbnail extraction can be achieved.

Tranformations

Transformations allow information manipulation during the Action. Currently supported Transformation elements include;
  • Filtering

    Full support for filtering with grouped filter object containing field and nested field selection, operands and methods (Contains, Starts With, Between....)

  • Aggregation

    Standard aggregation options are available including Sum, Average, Minimum, Maximum, Count.

  • Paging

    Provided paging capability allows for paged data retrieval with configurable page size. This also allows for retrieval of the Top n records.

  • Grouping

    Dynamic grouping capability is available and amongst other things is frequently used with Aggregation to generate drill-down reporting data sets.

  • Coallesce

    Coalesce functionality allows for simple retrieval of the first non-empty field value.

  • Casting

    Casting is provided as base functionality allowing for automated numeric, Boolean (truthy) and date extraction from any data type.

  • Projection

    A Projection transformation allows the manipulation of the output field definition. Standard methods include Include, Exclude and Static.

  • Combine

    The combine transformation allows for concatenation of multi-field values with an optional separator or custom format string.

Destinations

Destinations define information targets for Actions. Currently supported Destination elements include;
  • Azure Storage

    Available Azure Storage Destination include Tables, Blobs and Queues. For example, the content of an incoming queue message can be transformed and persisted to a table, incoming table data sets can be aggregated to a different table (or the same table with an altered partition/row key)

  • Power BI

    Data can be sent to a standard or streaming PowerBI data set. Allowing for easy end user analytics.

  • Azure Cognitive Service

    Cognitive Services including Vision (OCR, image optimisation, video analysis, image content identification), LUIS (text analytics, spell checking, translation, linguistic analysis) and Knowledge can be specified as a Destination.

  • Relationship Database

    An RDBMS such as MS SQL can be used as a destination element. Support is provided for both on-premises and cloud based databases.

  • Webhook

    A Webhook destination element allows the Action to deliver a range of payloads with full support for custom header, verbs and authentication. Support is provided for binary content delivery (for example to submit an image/blob to an external system)

  • SMS

    Support for SMS alerts or notifications is provided through the use of an SMS Destination element. An example includes notification of a vehicle crossing a specified geographical boundary.

  • E-mail

    E-mail destinations allow for automated delivery of data to an e-mail recipient or group of recipients with support for embedding attachments.

  • Azure Management API

    The Azure Management API can be used as a destination element allowing for scaling, service events (start/stop), resource creation etc. For example, an Incoming Resource metric shortfall could result in a Resource scaling event.