Jerry Cwiklik created UIMA-5342:
-----------------------------------
Summary: UIMA-DUCC: implement a new driver with support for
pluggable task allocation component
Key: UIMA-5342
URL: https://issues.apache.org/jira/browse/UIMA-5342
Project: UIMA
Issue Type: New Feature
Components: DUCC
Reporter: Jerry Cwiklik
Fix For: future-DUCC
Implement a new embeddable driver component which will deliver Work Items to
services that use GET/ACK/END protocol. This protocol is currently used between
a JP and JD. Its a pull based, synchronous request/response exchange with a JP
being a requestor.
The new Driver will enable an application to plug in a callback listener which
will implement the following interface:
public interface TaskAllocatorCallbackListener {
public String getSerializedCAS(TaskConsumer taskConsumer);
public void onTaskSuccess(TaskConsumer taskConsumer,
IPerformanceMetrics metrics);
public void onTaskFailure(TaskConsumer taskConsumer, String
stringifiedException);
}
The Driver will call getSerializedCAS() when it receives a GET request from a
remote service, The method must return a serializedCAS or null if there are
none available. The TaskConsumer argument identifies where the CAS will be
processed [ host, pid, thread id, service type ].
The Driver will call onTaskSuccess() when it receives END from a remote service
and processing of a CAS succeeded. In addition to TaskConsumer argument, the
IPerformanceMetrics instance will be passed in which will contains performance
breakdown.
The Driver will call onTaskFailure() when it receives END from a remote service
and processing of a CAS failed. In addition to TaskConsumer argument, a
serialized exception (String) will be passed in to identify the cause of
failure.
The Driver assumes that the TaskAllocatorCallbackListener implementation will
catch and handle its errors and none will be rethrown.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)