Web Services Requests

Introduction

This document outlines recommendations to prevent server overload and create request queues to limit the number of web services requests to the Ephesoft Transact server.

On performing volume testing for this web service, and based on customer feedback, we identified areas in the code base for this web service which can be optimized. Starting with the v4.1.2.0 release of Ephesoft Transact, we have optimized this feature to resolve the following issues:

  1. Recostar OCRing processes for the initiateOcrClassifyExtract web service were not efficiently managed by a thread pool which could lead to non-availability of resources.
  2. In case of a particular exception during web service execution, the current status of the web service was not updating to ERROR.

Prerequisites

Customers need to have a version of Ephesoft Transact with web services enabled.

Note: These instructions are applicable for use with any version of Ephesoft Transact.

User Recommendations

This section outlines recommendations to ensure optimal web services performance with Ephesoft Transact.

Web Services Requests

Implementing a Request Queue

We recommend implementing a request queue to prevent the server from overloading with web services requests. A request queue is not available in Ephesoft Transact. Users must create a request queue to limit the number of requests to the Ephesoft Transact server.

When requests are sent without a queue, Ephesoft Transact will send the request for processing. This can overload the server if the number of concurrent requests to the Ephesoft Transact server are not controlled within a customer’s queue.

The request queue allows a limited number of concurrent requests to the server. Respond to each request individually only upon receiving a response. This is in support of the concurrent requests allowed within a queue. The table below provides recommendations on the number of concurrent requests users can send to Ephesoft Transact based on CPU cores of the server.

CPU Cores Number of Concurrent Web Services Requests
Small Batches (<10 pages) Larger Batch (50> pages)
4 2 1
8 6 2-3
16 12-14 6-8
32 20-24 10-15

Note: The values in this table are approximate. These numbers may vary according to your use case.

The following information outlines the number of concurrent requests a system can process based on CPU core and web services response time.

  1. CPU Core: The higher the number of CPU cores, the higher the number of concurrent requests a system can process.
  2. Web Services Response Time: The least amount of response time needed, the least number of concurrent requests needed to send to the Ephesoft Transact server.

The number of concurrent web services requests should not exceed the number of concurrent batch instances your system can process. Keep the number of web services requests at 25% less than the number of batch instances a system can process.

Conclusion

This completes the recommended steps to optimize the use of web services with Ephesoft Transact.