Хорошо, поэтому я разрабатываю автономный веб-сервис (используя RestLET в качестве основы). Мое приложение разделено на 3 слоя:
- Уровень данных (над базой данных, предоставляет API-интерфейсы для подключения/запроса базы данных и объект базы данных)
- Объектный уровень (отвечает за сериализацию уровня данных... предоставляет объекты, которые клиентский уровень может использовать, не беспокоясь о базе данных)
- Клиентский уровень (этот уровень является веб-службой RestLET... в основном просто создает объекты из уровня объектов и выполняет запрос веб-службы)
Теперь для каждого объекта, который я создаю на уровне объектов, я хочу использовать разные учетные данные (чтобы я мог помещать каждый объект в песочницу...). Уровень объекта не должен знать точные учетные данные (например, URL-адрес входа/пароля/БД и т. д.).
Что было бы лучшим способом управлять этим? Я думаю, что у меня должен быть объект базы данных суперкласса на моем уровне данных... и каждый подкласс будет содержать необходимую информацию для входа в систему... таким образом, мой объектный уровень может просто перейти Database db = new SubDatabase();
, а затем продолжить использование этой базы данных.
На уровне клиента они просто могли бы пойти ItemCollection items = new ItemCollection();
и не иметь ни малейшего представления/контроля над подключаемой базой данных.
Я спрашиваю об этом, потому что пытаюсь сделать свою платформу расширяемой, чтобы другие могли легко создавать сервисы на моей платформе.
Если у кого-то есть опыт решения этих архитектурных проблем или того, как управлять такими вещами, я был бы признателен за любую информацию или совет...
Не стесняйтесь задавать вопросы, если это сбивает с толку. Спасибо!
Моя платформа — Java, фреймворк REST, который я использую — RestLET, моя база данных — MySQL.