Cognition

Cognition is a modular application delivery framework built using Oracle Application Development Framework, Java, Java Server Faces and Java Enterprise Beans to provide J2EE compliant application architecture.  Cognition provides core functionality including dataflow processing, industry standing data management, job scheduling, data mining and external email communication to application modules that reside within it.  The following business application modules sit within the extensible Cognition framework:

  • Annual Quantity (AQ)
  • Invoice Reconciliation (IR)
  • Work Management (Teamwork)

The Cognition framework presents a consistent user interface and processing model to business users across Cognition application modules.  The framework is designed to be extensible with regard to additional core facilities and scalable to process large datasets efficiently, as demonstrated by the Annual Quantity module.

The Cognition design goal is to provide:

  • Consistency and simplicity – in screen design, navigation and user facilities.
  • Power and flexibility – to allow users identify and work with small or large data subsets and initiate processing immediately using the Filter/View/Task model.
  • Scalability – fully utilise multi-CPU architectures with parallel processing.
  • Security – provide a user/group/resource permissions model that can be used to restrict user access to application resources at multiple levels.

Cognition provides users with user-defined data drill down allowing users to discover more about the data that they manage, discover where anomalies exist or where work is required, and generate and prioritise work flow to address those items of work. 

Scheduled processing takes care of regular receipt or sending of data to and from Cognition.

Cognition Repository

This is the central source of configuration data for Cognition. It currently holds the following categories of data:

  • Configuration – parameters and tables
  • System – file definitions, filter definitions, view definitions, etc.
  • Industry – market domain data, regulatory reference data, etc.
  • Resources – resources on the Browser User Interface (BUI) that are available to users

All this data is used to allow the product to be configured to meet customer requirements and to allow control of Cognition processes (e.g. file processing). Repository data is accessed through the BUI as seen below.

File Handling

All files are handled by input and output adapters that are developed for different protocols in different markets (e.g. UK Link for the gas market). File types, protocols and system processing directories are defined in the repository. Files are first parsed to check they are in the correct format for that protocol. Each transaction (i.e. logical record set) in a file is then written as a transaction to the application database in XML format and queued for processing (using Oracle’s advanced queuing facility).

Transaction Processing

Transactions are taken from queues, in (configurable) priority order, and processed. A number of processes may be applied to a transaction depending on the applications defined within the Cognition repository. Processes may amend data on databases and may additionally issue tasks (see below) or raise work items (see below). The throughput of transactions can be changed by altering the number of “streams” used to process the queue, again this is controlled via the BUI.

Views / Filters

Views are the mainstay of the BUI for data analysis and allow users to interrogate entities (e.g. meter points) and all their associated data (as in the example below).

A View is configured to use a defined Filter – a user-configurable set of conditions to limit the set of returned objects e.g. Gas Meter Points against the base view. For example, the AQ application provides a base view of the Gas portfolio of all Meter Points known to the organisation (initially filtered into realms for active, gaining or lost periods of supply).

The data for each item is present as a line in the view with the relevant ‘Task Flow’ tabs displayed below allowing a specific aspect of the selected row entity to be seen in more detail.  The Task Flow region allows users to action specific functions through wizards driven by button presses.

The overall view is made for the full set of entities but filtered views can be created by the user and saved. A filter allows the fields for the entity view to have multiple conditions applied to them (e.g. AQ Value < 1000). A new entity view can then be created based on this filter and this will appear in the accordion on the left for selection giving users a customised view of the data. Additionally tasks or work can be created for a view using the “Assign ToDo List” and “Create Work” (see below) or can be applied to a single entity using a context menu. More granular filtering can be made using the query-by-example (QBE) fields at the top of the view list. Using these fields a single entity entry can be found using its key (e.g. meter point reference) or a number of entries with the same attribute value (e.g. confirmation reference for a supply point).

Views can be organised into user-defined folders in the Views tree. A drag-and-drop facility enables users to move view instances between folders as desired.

As part of Cognition’s security features, access to views can be configured for defined groups of users to limit visibility and access to given applications, realms and folders within the Views tree.

Tasks

Tasks allow business processing to be defined and carried out within Cognition. Tasks can be invoked through the business logic of a transaction or by the users themselves through the view feature of the BUI. Tasks can be used to create transactions for output by a file handler output adapter, or to interface with another system or to carry out some business process (e.g. calculate bill). Tasks can have components (i.e. stages of progress) to allow a life cycle to be monitored (e.g. transaction is sent out, response is received back). Tasks can also be linked so that the completion of one task allows another task to start. Thus tasks give a flexible and controlled method for issuing work within Cognition.

Incidents

Incidents are produced wherever there is a rejection or alert that requires or could require user attention (e.g. AQ amendment rejected). Incidents are raised as part of the business logic built within a particular Cognition application process. A view of incidents is then made available for the entity it relates to (e.g. meter point). This allows all business failures or alerts to be seen (and filtered into customised views as required) and dealt with through the creation of work items.

Teamwork

Teamwork is the work management facility provided by Cognition. Work items can be generated where user action is required. Work items are based on a grouping called a work type (e.g. must read required). A work type has an associated work flow that is defined through an administrative function of the BUI and recorded in the repository. A work flow defines the steps a user must take to complete the work item.  The work flow can prompt users to follow instructions, answer questions or select choices.  User actions can be monitored, are recorded and automatic processes triggered by the system as a work flow is progressed.  Statistics are collated to provide user performance reporting and work forecasting.

Work flows can be amended as processes are changed or refined through usage; this is accomplished by work flow versioning.  The performance of different work flow versions can then be measured. This powerful tool allows manual processes to be defined and refined, simplifying user training and providing a monitoring mechanism for all work in the system.

Teamwork views are provided to allow user interrogation of all work items currently in the system at whatever status e.g. active, completed. As described previously, view filters can be configured on the Teamwork view to display items that match user-defined criteria.

Work categories can be organised to ensure that specific teams (collection of users) are assigned particular types of work.

Insight

Insight is the Cognition reporting facility. Report types are developed based on business requirements and are then made available to the users through the BUI. Reports can be run manually by the user or automated through the scheduler. By default the report output is HTML and this can then be either mailed directly to the requesting user or stored in the user documents store, or viewed through a web browser. Reports can be produced in many formats and exported to spreadsheet programs for local analysis.

Architecture

Cognition is based on a tiered architecture using standard Oracle components. The technologies used to develop the solution are:

  • Oracle Application Development Framework (ADF)
  • Oracle 19c Relational Database

The architecture is shown diagrammatically below:

The use of ADF (version 12c) is compatible with the following browsers (certified by Oracle):

  • Firefox 10+
  • Internet Explorer 9, 10, 11
  • Microsoft Edge 20.10240.0.0+
  • Safari 5+
  • Chrome 15+

Many features of Oracle RDBMS are utilised by Cognition to provide functionality at the data layer:

  • Advanced Queuing – to control transaction and task processing and to allow them to be streamed to improve processing throughput by making full use of the server
  • XML – to store transactions in a structured manner to allow more effective processing and visibility of the source data
  • File Utility – to provide a standard framework for file processing (through protocol adapters) and to utilise file security provided by Oracle

By the use of Oracle internal facilities (e.g. the file utility) the Cognition solution isolates itself from the operating environment and thus can be installed on any operating system that supports Oracle RDBMS and Oracle Weblogic server.