Только что видел это, я уверен, что к настоящему времени у вас есть ответы на большинство из этих вопросов, но здесь идет.
Ваш вопрос 3 является ответом на ваш заглавный вопрос. Передача URI в конструкторе означает, что вы получаете большую гибкость во время выполнения для размещения службы данных. Так что в моем случае в качестве параметров приложения я получил порт и имя сервера, которые можно изменять во время выполнения без необходимости изменять приложение.
Надеюсь, это поможет.