for review

we should consider
1 define the external resource
2 how to ship to executor
3 a pool for this resource in exetutor
should manage resources and task ask resource from ResourceManager, so ResourceManager can create a resource for task. I think here should be two queue in resource manager, one is for used resource and another is for unused. Each time a task ask for a resource manager give it one from unused queue, if the queue is empty, then create one.