Extending mobility to publish/subscribe systems using a pro-active caching approach