The NetworkEnvironment would be refactored into NetworkShuffleService created by ShuffleManager future. So the NetworkEnvironment should only cover shuffle related components to make the preparation.
Currently KvStateRegistry, KvStateServer, KvStateClientProxy are not related to shuffle process and mainly used to be got in TaskExecutor. So it is reasonable to remove them from NetworkEnvironment.
And then we could introduce a new KvStateService for wrapping these three components and pass it into TaskManagerService. This new service can also be passed into TaskExecutor, Task for use and avoid spreading in messy.