Architecture

../_images/architecture.png

SmartSoft Invoices has modular architecture and consists of several software components. All components excluding the Data Verify Client and the Web client work as Windows services;

Application server
A lightweight component that dispatches the document batches to the processing clients. It manages users, user groups, permissions, settings and document batches.
Input client
Creates batches of documents from scanner, watched folder, email account, etc. and adds them to the system for processing. The input client can be used as an automated Input service that can create batches automatically without human interaction.
OCR client
Converts document images to text characters.
Classification client
Automatically classifies documents.
Data Capture client
Interprets the text characters provided by the OCR client and document layout to extract key data fields and table cells from a document. The Capture client I also responsible for the software?s learning abilities.
Class verify client
Used by an operator to check document classification results and correct incorrectly classified documents, thus providing training to the system.
Data verify client
Used by an operator to check the extracted data, correct errors and train the system.
Export client
Exports the captured data to a third-party software system, a database, a text file (CSV or XML) or image file (TIFF or PDF).
Web client
Provides access to the system through a web browser. Requires IIS.

Architecture benefits

This architecture provides the following benefits:

  • Scalability
    • As your processing volume grows, you can easily add new processing clients on new machines, e.g. can add a new OCR client on a separate machine to cope with the CPU intensive task of OCR processing. The server component will automatically distribute documents to newly added clients.
  • Flexibility
    • You can only install the components you need.
    • The components can be installed on one or separate machines, on premises, on hosted machines or in the cloud.
    • The system can be accessed from different remote locations.
  • Extensibility - independent developers can develop their own clients and plugins:
    • Client-side plugins. These let you customize the Verify client or the Export client to add specific functionality, such as custom data export formats, complex data parsing algorithms, access to web services, custom settings windows, etc.
    • Server-side plugins These can be used to add a custom processing step in the workflow.
    • Custom Clients Third-party developers can create entire clients similar to the existing Input Client, Verify Client, Export client, etc. to add additional steps in the workflow or replace existing ones. These communicate with the server by using documented APIs.