Background
Geode provides a FunctionService. Currently this FunctionService is defined to be static. In order to remove the "static-ness" of the FunctionService it is required to be made available off the Cache in a similar fashion as the RegionFactory. The currently exposes functionality that available for both client/server interaction and peer-to-peer, which can be confusing to users writing clients.
Dependencies
The FunctionService refactor requires that the Geode is split into two distinct modules:
- server cache
- client cache
Currently, in code, there is no distinction between a client cache or server cache.
Proposal
The current FunctionService provides 3 different services:
- Function administration
- Function invocation from a Geode client
- Function invocation from a Geode server
In order to have a more concise service the proposal is to:
- Separate the client and server function service implementations into different classes
- Move the function administration to be a server-side function only.
For the splitting of the FunctionService into the client and server components, it