(1) establish initial contact with the ARC kernel
(with a local coordinator)
(2) obtain locks and respective HPFs on anonymous
remote machines
(3) post ARC functions on to locked anonymous
HPFs
(4) whenever results are required, wait for
the ARC functions posted earlier
(5) tune the parameters of fault tolerance such
as the number of attempts to be made
to execute an RIB on
remote nodes, timeOut interval during which retries can be
made for failed ARC
function calls if asked for.
(6) Reuse a remote ARC executor process on anonymous
node if same ARC function call
is to be invoked again
(7) Terminate anonymous ARC executor process
if it is no more going to be reusable.
(8) disconnect with ARC kernel
The user library hides the intricacies involved in the execution of the submitted ARC tasks. Users simply submit their tasks and it keeps track of which AFCs have been submitted to which locks. If the machine on which an AFC is executing fails, the user library finds required new lock and re-executes the failed AFC on new locks. Hence the failure of machines is unknown to the user. The ARC user library automatically manages the fault tolerance as dictated by user's preferences.
The user library receives messages from the coordinator through message queue. It is through these messages that coordinator informs the user library about the status of posted AFCs, such as availability of result, failure of coordinators, or error conditions.
The functions provided by the user library are divided into two components. One is the user interface component containing functions which can be invoked by the user library. The other component consists of helper functions that extend the implementation of user interface functions. RPC calls to local coordinators can be made from either of the two interfaces.