Project April is an API invented for annotation-based approach in creating distributed services.
Procedure (method) whose execution is delegated to a Data-provider server (most commonly, on other physical machine) via the Distributor server
Data-user, Distributor or Data-provider
Server containing Remote procedures delegated to Distributor server. May be registered in Distributor server(s). Multiple may occur optionally joined by a single Data network.
Server responsible for accepting requests for Remote procedure executionm processing them to Data-provider server(s) and returning the result (if any). Multiple may occur joined by a single Data network.
Server responsible for execution of procedures (methods) for whom the are local. Should be registered in Distribution server(s). Multiple may occur joined by a single Data network.
Group of Data-users, Distributors and Data-providers joined for cooperative work.
Stream of data between Data-user, Distributor and Data-provider. Normally goes from the first to the last and backwards.
Object unique for each node in a Network used for its identefication amongst others.
Interface describing methods of a RP. May contain non-RP methods.
Factory capable of creatng runtime implementations of Remote interfaces.
Method in Remote-interface expected to be executed using April.
Contains targetColor
prameter indicating the target color of this method's executor.
Data about the network. Should be similar between DSs of the same network.
Object capable of effective distribution of requested remote procedures via data-providers
Object used for identifying functional purpose of this DP. Multiple may occur.
Object describing behaviour of a foreign RP being executed on this machine. Should be registered in Remote-interface implementation handler
Method in Remote-interface implementation expected to be executed using April
Manager capable of accepting requests from distributor server delegating them to registered Remote-interface implementations.
Indicator that the RemoteInterfaceFactory
should cache the results of this method call for all its parameters or only those which are annotated as @CacheKey
Indicator that the same Data-provider should be used for this method calls always or only for the same values of parameters annotated as @NonSharingKey