Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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 from the Cache in a similar fashion as the RegionFactory.

The current FunctionService, currently exposes functionality that available for encompasses both client/server interaction and peer-to-peer (server-side), which can be confusing to users writing clientswanting to use the service.

Dependencies

The FunctionService refactor requires that the Geode is split into two distinct modules:

...

The different function service implementations will be responsible for its area of expertise. The client function service would not know about server-side services and would not expose functionality that cannot be used.

 butavailable for

 

 The exposing of the FunctionService from the Cache would be fairly simple. As can be seen below, this can be achieved fairly simply. In addition to this work, the FunctionService static invocation can be kept (for deprecation period purposes) by using the static lookup Cache.getAnyInstance() and then looking up the relevant FunctionService off the Cache.

 Image Added


The current limitation that the client cache and server code is not separated, forces the following architecture. The cache will have to distinguish between a client and server function service. In addition to this extra logic, the ClientFunctionService and ServerFunctionService should effectively marked as Deprecated from the day they are introduced, as they would ideally only be FunctionServices and not specific to client or server.

 Image Added