Provide higher level server API

* runServer
* cancel
* timeout